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

MySql कनेक्टर 6.8.2 RC, एंटिटी फ्रेमवर्क 6 और कोड फर्स्ट

मेरे पास MySQL EF6 और माइग्रेशन थे और जब सब कुछ एक MVC प्रोजेक्ट में था तब काम कर रहा था। मैंने इसे परतों (कोर [इंटरफेस/एंटाइट्स], डेटा, सर्विसेज और वेब) में विभाजित किया और लोरेन ने वही त्रुटि प्राप्त करना शुरू कर दिया।

पता चला कि यह एमवीसी ऐप से कनेक्शन स्ट्रिंग नहीं उठा रहा था। पता चला कि मुझे बस इतना करना था कि मेरे डेटा प्रोजेक्ट (जहां DbContext और मैपिंग रहते हैं) में App.config के भीतर कनेक्शन स्ट्रिंग को फिर से बनाएं।

सब कुछ काम करने के लिए मैंने ये कदम उठाए हैं:

चरण 1) आयात करने के लिए NuGet का उपयोग करें MySql.Data.Entities (इस पोस्ट का वर्तमान संस्करण 6.8.3.0 है)

चरण 2) निम्न को App.config में जोड़ें और/या Web.config :

<connectionStrings>
    <add name="MyDB" providerName="MySql.Data.MySqlClient" connectionString="Data Source=localhost; port=3306; Initial Catalog=mydb; uid=myuser; pwd=mypass;" />
  </connectionStrings>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
      <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.8.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider>
    </providers>
  </entityFramework>

चरण 3) MySql का उपयोग करने के लिए अपना DbContext सेट करें:

using MyApp.Core.Entities.Directory;
using MyApp.Data.Mapping;
using System.Data.Entity;

namespace MyApp.Data
{
    [DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))]
    public class MyContext : DbContext
    {
        public MyContext() : this("MyDB") { }
        public MyContext(string connStringName) : base(connStringName) {}
        static MyContext ()
        {
            // static constructors are guaranteed to only fire once per application.
            // I do this here instead of App_Start so I can avoid including EF
            // in my MVC project (I use UnitOfWork/Repository pattern instead)
            DbConfiguration.SetConfiguration(new MySql.Data.Entity.MySqlEFConfiguration());
        }

        public DbSet<Country> Countries { get; set; }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            // I have an abstract base EntityMap class that maps Ids for my entities.
            // It is used as the base for all my class mappings
            modelBuilder.Configurations.AddFromAssembly(typeof(EntityMap<>).Assembly);
            base.OnModelCreating(modelBuilder);
        }
    }
}

चरण 4) पैकेज मैनेजर कंसोल में अपने डेटा प्रोजेक्ट के लिए डिफ़ॉल्ट प्रोजेक्ट सेट करें

चरण 5) enable-migrations का उपयोग करें , add-migration , update-database जैसा कि आप सामान्य रूप से करेंगे



  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 में प्रकार:BigInt(20) बनाम Int(20)

  2. मैसकल, डेटा को लंबे/लंबे से चौड़ा करने के लिए दोबारा आकार दें

  3. उस तालिका में सम्मिलित करें जिसके नाम में डैश है

  4. दो तिथियों के बीच की तिथियों की सूची प्राप्त करें

  5. MySQL में वर्तमान समय में 2 घंटे जोड़ें?