Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

एक ही कॉन्फ़िग फ़ाइल पर दो अलग-अलग प्रदाता

सबसे पहले आप गलत कॉन्फ़िगरेशन कक्षाओं का उपयोग कर रहे हैं। डीबीकॉन्फ़िगरेशनटाइप को डीबीकॉन्फ़िगरेशन से विरासत में मिला एक प्रकार की आवश्यकता है न कि डीबीमाइग्रेशनकॉन्फ़िगरेशन<>।

DbMigrationsConfiguration वास्तव में केवल माइग्रेटर्स और डेटाबेस इनिशियलाइज़र के लिए उपयोग किया जाता है।

public class MyDbConfiguration : DbConfiguration
{
    public MyDbConfiguration()
    {
        this.SetDefaultConnectionFactory(new System.Data.Entity.Infrastructure.SqlCeConnectionFactory("System.Data.SqlServerCe.4.0"));

        this.SetProviderServices("System.Data.SqlServerCe.4.0", SqlCeProviderServices.Instance);

        this.AddInterceptor(new NLogCommandInterceptor());// guardar logs

        this.SetMigrationSqlGenerator("System.Data.SqlServerCe.4.0", () => new SqlCeMigrationSqlGenerator());
    }
}

[DbConfigurationType(typeof(MyDbConfiguration))]
public class TestContext : DbContext

अफसोस की बात है कि यह संभव नहीं है इसलिए कई डीबी कॉन्फ़िगरेशन के साथ भी कई डिफॉल्टकनेक्शन फैक्ट्री सेट करें।

आपके मामले में आपको कनेक्शन स्ट्रिंग्स को app.config में स्टोर करना होगा और नाम को DbContext कंस्ट्रक्टर को पास करना होगा।

public class TestContext : DbContext
    {
        public TestContext()
            : base("name=MyConnectionString")
        {

        }

app.config में MyConnectionString के प्रदाता नाम के आधार पर कनेक्शन को इनिशियलाइज़ किया जाएगा।

या यदि आप अपने app.config में कनेक्शन स्ट्रिंग नहीं चाहते हैं, तो बस पहले से ही आरंभ किए गए DbConnection को DbContext कंस्ट्रक्टर को पास करें

public class TestContext : DbContext
    {
        public TestContext()
            : base(new SqlCeConnection(GetConnectionString()),true)
        {

        }

या यदि आप किसी विशिष्ट कनेक्शन को प्रारंभ नहीं करना चाहते हैं तो DbProviderFactory का उपयोग करें।

public class TestContext : DbContext
    {
        public TestContext()
            : base(GetConnection(),true)
        {

        }

        public static DbConnection GetConnection() { 
            var factory = DbProviderFactories.GetFactory("System.Data.SqlServerCe.4.0");
            var connection = factory.CreateConnection();
            connection.ConnectionString = "Data Source=C:/teste2.sdf;Persist Security Info=False;";
            return connection;
        }


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql में उपयोगकर्ताओं को उनके अंकों के आधार पर रैंक करें

  2. mysql रूट पासवर्ड बाकी

  3. Laravel 5.4 रॉ उम्मीद के मुताबिक काम नहीं कर रहा है लेकिन mySQL में काम कर रहा है

  4. PHP मैसकल से डेटाटाइम (6) कैसे वापस करें?

  5. JSON_LENGTH () - MySQL में JSON दस्तावेज़ की लंबाई लौटाएं