C ා dynamically create database 3 (MySQL)

Keywords: C# MySQL Database SQL xml

The previous instructions use EF to dynamically create a database and a table. The database uses SQL SERVER2008, which is different when MYSQL is used

I. add EntityFramework.dll, System.Data.Entity.dll, MySql.Data, MySql.Data.Entity.EF6

Note: Entity Framework 5.0.0 (it seems that the latest 6.X does not support mysql)

2. To add dll files, you can use "manage nuget packages" or "nuget package management console" to add

 

Add with console platform

 

The following is the dll statement for console platform installation
 EntityFramework.dll : Install-Package EntityFramework -Version 5.0.0
MySql.Data : Install-Package MySql.Data -Version 6.9.12
MySql.Data.Entity: Install-Package MySql.Data.Entity -Version 6.9.12

3. Add connectionStrings to the app.config file

 

Source file

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
  </configSections>
  <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.9.12.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider>
    </providers>
  </entityFramework>
  <system.data>
    <DbProviderFactories>
      <remove invariant="MySql.Data.MySqlClient" />
      <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.12.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
    </DbProviderFactories>
  </system.data>
  <connectionStrings>
    <!--<add name="conncodefirst" connectionString="server=127.0.0.1;port=3306;uid=root;pwd=repower;database=code" providerName="MySql.Data.MySqlClient"/>-->
    <add name="conncodefirst" connectionString="server=127.0.0.1;user id=root;password=repower;database=code" providerName="MySql.Data.MySqlClient" />
  </connectionStrings>
</configuration>

IV. add class

[Table("Student")]
    public class Student
    {
        public Student()
        {

        }
        [Key]
        public int StudentID { get; set; }
        public string StudentName { get; set; }
        public DateTime AddTime { get; set; }

    }

    [Table("Standard")]
    public class Standard
    {
        public Standard()
        {

        }
        public int StandardId { get; set; }
        public string StandardName { get; set; }
        public DateTime AddTime { get; set; }

    }

  

Add SchoolContext inherit DbContext

[DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))]
    public class SchoolContext : DbContext
    {
        public SchoolContext()
            : base("name=conncodefirst")
        {

        }

        static SchoolContext()
        {
            DbConfiguration.SetConfiguration(new MySql.Data.Entity.MySqlEFConfiguration());
        }

        public DbSet<Student> Students { get; set; }
        public DbSet<Standard> Standards { get; set; }

        //protected override void OnModelCreating(DbModelBuilder modelBuilder)
        //{
        //    base.OnModelCreating(modelBuilder);
        //}
    }

  

Last call

SchoolContext dbCOntext = new SchoolContext();
                //dbCOntext.Database.
                bool flag = dbCOntext.Database.CreateIfNotExists();
                Student stud = new Student() { StudentName = "New Student", AddTime = DateTime.Now };
                dbCOntext.Students.Add(stud);
                dbCOntext.SaveChanges();

Result

Posted by nmpku on Wed, 04 Dec 2019 00:09:24 -0800