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

मैं ASP.NET 5 में MySQL के साथ Entity Framework 6 का उपयोग कैसे करूं?

चूंकि Web.config अब ASP.NET 5 के साथ प्रयोग नहीं किया जाता है, इसलिए आपको कोड-आधारित कॉन्फ़िगरेशन इसके बजाय इसे कॉन्फ़िगर करने के लिए। ऐसा करने के लिए, एक नया वर्ग बनाएं जो DbConfiguration से विरासत में मिले:

public class MyDbConfiguration : DbConfiguration
{
    public MyDbConfiguration()
    {
        // Register ADO.NET provider
        var dataSet = (DataSet)ConfigurationManager.GetSection("system.data");
        dataSet.Tables[0].Rows.Add(
            "MySQL Data Provider",
            ".Net Framework Data Provider for MySQL",
            "MySql.Data.MySqlClient",
            typeof(MySqlClientFactory).AssemblyQualifiedName
        );

        // Register Entity Framework provider
        SetProviderServices("MySql.Data.MySqlClient", new MySqlProviderServices());
        SetDefaultConnectionFactory(new MySqlConnectionFactory());
    }
}

कॉन्फ़िगरेशन का पहला भाग रनटाइम पर ADO.NET प्रदाता को पंजीकृत करने के लिए एक हैक है, गतिशील रूप से system.data में एक नई कॉन्फ़िगरेशन प्रविष्टि जोड़कर खंड। यह बहुत हैकी है, लेकिन यह सही ढंग से काम करता प्रतीत होता है।

कनेक्शन स्ट्रिंग को config.json . में जोड़ें के बजाय Web.config :

{
  "Data": {
    "DefaultConnection": {
      "ConnectionString": "Server=localhost; Database=test; Uid=test; Pwd=password;"
    }
  }
}

DbContext को संशोधित करें सही कॉन्फ़िगरेशन और कनेक्शन स्ट्रिंग का उपयोग करने के लिए:

[DbConfigurationType(typeof(MyDbConfiguration))]
public class MyContext : DbContext
{
    public MyContext(IConfiguration config)
      : base(config["Data:DefaultConnection:ConnectionString"])
      {
      }
      // ...
}

रजिस्टर करें MyContext Startup.cs . में डिपेंडेंसी इंजेक्शन कंटेनर में :

public void ConfigureServices(IServiceCollection services)
{
    // ...
    services.AddScoped<MyContext>();
}

फिर आप MyContext . प्राप्त करने के लिए केवल कंस्ट्रक्टर इंजेक्शन का उपयोग कर सकते हैं अपने नियंत्रकों में।

मेरे ब्लॉग पोस्ट में अधिक विवरण http://dan.cx/ 2015/08/इकाई-ढांचे-6-mysql-aspnet , और https://github.com/Daniel15/EFExample पर एक नमूना प्रोजेक्ट




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं समकालिक रूप से व्यवहार करने के लिए एसिंक्रोनस कॉल को कैसे लपेट सकता हूं?

  2. mySQL अगर कथन

  3. व्याख्या कथन में MySQL key_len को समझना

  4. MySql कनेक्टर EF6

  5. स्प्रिंग बूट में सभी mysql टेबल डेटा को JSON में बदलें