本子不雷同会招致有些标题),其余第②和第③担保版本相同

皇冠现金app 1

专注:没在MyContext类上方标记DBConfigurationType害得本人这一步浪费了好多少个钟头,会唤醒No
MigrationSqlGenerator found for provider ‘MySql.Data.MySqlClient’. Use
the SetSqlGenerator method in the target migrations configuration class
to register additional SQL generators.

在意:①自动生成了__migrationhistory表表达配置很成功。②PersonConfig.cs里的this.ToTable(“T_Persons”);影响实体类映射成功后的表名。③暗中认可Id字段为主键并且自增,由此不须求手动为Id属性赋值。

7.开拓Configuration.cs,将AutomaticMigrationsEnabled的值修改为true,并且在先后包管理器控制台运行命令update-database
-force,成功后将会现身如图所示音讯:

mysql+ef的安排相相比mssql+ef来说复杂一些。小编的感触就是安插难度在于插件版本造成的种种不包容难点。别的参考了重重博客,将三个博客里的经历综合才可以完成,因为不是各种人的操作都和那些博客笔者描述的情事亦然,可是化解今后其他都好说。以后从零先河操作mysql+CodeFirst的落实,总括自个儿的布局进度。先保障安装并开拓了mysql数据库:

5.新建MyContext类,详细代码(注意:假诺不在类上方做DBConfigurationType标记的话会在终极操作update-database时出错,别忘记)

皇冠现金app 2

皇冠现金app 3

7.开拓Configuration.cs,将AutomaticMigrationsEnabled的值修改为true,并且在程序包管理器控制台运行命令update-database
-force,成功后将会师世如图所示音信:

8.以往来测试效果。近日mysql里不曾名字叫sqltest的数据库存在,CodeFirst是经过代码来自动生成数据库的。主函数代码如下:

③Install-Package MySql.Data.Entity
-Version 6.8.8

9.运行后假如成功,刷新Navicat for
MySQL的数据库列表可以发现新变化的数据库:

 

皇冠现金app 4

[DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))]
    class MyContext : DbContext
    {
        public MyContext()
            : base("name=connStr")//name对应配置文件里的连接字符串name属性
        {

        }
        public DbSet<Person> Persons { get; set; }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
            modelBuilder.Configurations.AddFromAssembly(Assembly.GetExecutingAssembly());
        }
    }

 

1.新建控制台项目

[DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))]
    class MyContext : DbContext
    {
        public MyContext()
            : base("name=connStr")//name对应配置文件里的连接字符串name属性
        {

        }
        public DbSet<Person> Persons { get; set; }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
            modelBuilder.Configurations.AddFromAssembly(Assembly.GetExecutingAssembly());
        }
    }

②Install-Package MySql.Data -Version
6.8.8

2.在程序包管理器控制台里依次安装(注意:EF版本一定要低,此外第②和第③保险版本相同,因为③和②有依靠关系,版本不等同会导致部分标题)
①Install-Package EntityFramework -Version
6.1.3

class PersonConfig : EntityTypeConfiguration<Person>
    {
        public PersonConfig()
        {
            this.ToTable("T_Persons");
        }
    }
public class Person
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public int Age { get; set; }
    }

皇冠现金app 5

皇冠现金app 6

5.新建MyContext类,详细代码(注意:假诺不在类上方做DBConfigurationType标记的话会在最后操作update-database时出错,别忘记)

③Install-Package MySql.Data.Entity
-Version 6.8.8

8.未来来测试效果。近期mysql里不曾名字叫sqltest的数据库存在,CodeFirst是透过代码来自动生成数据库的。主函数代码如下:

1.新建控制台项目

using (MyContext ctx = new MyContext())
            {
                Person per1 = new Person { Name = "per1", Age = 12 };
                Person per2 = new Person { Name = "per2", Age = 17 };
                Person per3 = new Person { Name = "per3", Age = 19 };
                ctx.Persons.Add(per1);
                ctx.Persons.Add(per2);
                ctx.Persons.Add(per3);
                ctx.SaveChanges();
                Console.WriteLine("添加成功");
            }
            Console.ReadKey();

在意:此时在档次下会自动生成文件夹和一个类,如图所示:

public class Person
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public int Age { get; set; }
    }

 

 

皇冠现金app,3.App.Config配置文件里丰盛:

3.App.Config配置文件里丰硕:

皇冠现金app 7

皇冠现金app 8

mysql+ef的配备相相比mssql+ef来说复杂一些。作者的感受就是安顿难度在于插件版本造成的各样不包容难题。其它参考了累累博客,将三个博客里的阅历综合才可以完毕,因为不是每一种人的操作都和这些博客小编描述的景色一模一样,不过化解将来其余都好说。今后从零早先操作mysql+CodeFirst的落到实处,总结本身的安插过程。先保证安装并开拓了mysql数据库:

9.运转后借使成功,刷新Navicat for
MySQL的数据库列表可以窥见新转变的数据库:

4.顺序新建Person实体类,PersonConfig类,详细代码:

专注:此时在品种下会自动生成文件夹和一个类,如图所示:

注意:①自动生成了__migrationhistory表表达配置很成功。②PersonConfig.cs里的this.ToTable(“T_Persons”);影响实体类映射成功后的表名。③暗中同意Id字段为主键并且自增,由此不需求手动为Id属性赋值。

6.三番五次在先后包管理器控制台运行命令Enable-Migrations
-force,成功后将会并发如图所示音讯:

using (MyContext ctx = new MyContext())
            {
                Person per1 = new Person { Name = "per1", Age = 12 };
                Person per2 = new Person { Name = "per2", Age = 17 };
                Person per3 = new Person { Name = "per3", Age = 19 };
                ctx.Persons.Add(per1);
                ctx.Persons.Add(per2);
                ctx.Persons.Add(per3);
                ctx.SaveChanges();
                Console.WriteLine("添加成功");
            }
            Console.ReadKey();

专注:没在MyContext类上方标记DBConfigurationType害得自个儿这一步浪费了某些个小时,会唤醒No
MigrationSqlGenerator found for provider ‘MySql.Data.MySqlClient’. Use
the SetSqlGenerator method in the target migrations configuration class
to register additional SQL generators.

②Install-Package MySql.Data -Version
6.8.8

<connectionStrings>
<add name="connStr" connectionString="data source=127.0.0.1;user 
id=root;password=123456;database=sqltest;" providerName="MySql.Data.MySqlClient" />
</connectionStrings>
class PersonConfig : EntityTypeConfiguration<Person>
    {
        public PersonConfig()
        {
            this.ToTable("T_Persons");
        }
    }

2.在先后包管理器控制台里依次安装(注意:EF版本一定要低,其余第②和第③承保版本相同,因为③和②有依靠关系,版本不雷同会招致有些标题)
①Install-Package EntityFramework -Version
6.1.3

6.无冕在程序包管理器控制台运行命令Enable-Migrations
-force,成功后将会油可是生如图所示消息:

4.顺序新建Person实体类,PersonConfig类,详细代码:

<connectionStrings>
<add name="connStr" connectionString="data source=127.0.0.1;user 
id=root;password=123456;database=sqltest;" providerName="MySql.Data.MySqlClient" />
</connectionStrings>

相关文章