Asp.Net + MySql CodeFirst

1.新建一个空解决方案,添加一个C#类库:Entity

2.右击Entity项目管理NuGet程序包,安装:EntityFramework6.1.3、MySql.Data.Entity6.9.9

3.在Entity项目中添加一个空的CodeFirst   ADO.NET实体对象模型 命名:MyContext(自己随便取)

  在app.config文件中会默认sqlserver添加连接字符串配置.

<connectionStrings>
    <add name="MyContext" connectionString="data source=   (LocalDb)\v11.0;initial catalog=Entity.DBContext;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
  </connectionStrings>            

  我们需要把它替换成MySql的连接字符串配置,填写直接数据库名,登陆账号密码

<connectionStrings>
    <add name="MyContext" connectionString="Data Source=127.0.0.1;port=3306;Initial Catalog=TestDB;user id=root;password=root;" providerName="MySql.Data.MySqlClient"/>
  </connectionStrings>

4.我们打开程序包管理控制台,选择ADO.NET实体对象模型所在的项目:Entity

  在控制台中输入Enable-Migrations   回车

 执行完成后,会生成Migrations   文件夹 和 Configuration.cs类,

现在需要把 Configuration.cs 的构造函数中设置sql生成类型为MySql

 public Configuration()
        {
            AutomaticMigrationsEnabled = false;
            SetSqlGenerator("MySql.Data.MySqlClient", new MySql.Data.Entity.MySqlMigrationSqlGenerator());
        }

然后在DBContext.cs类添加特性,标记DBContext使用MySql的配置

 [DbConfigurationType(typeof(MySqlEFConfiguration))]
    public class DBContext : DbContext
    {
        public DBContext()
            : base("name=DBContext")
        {
        }
    }

  

5.现在我们就可以见一个模型类来生成数据库了

  新建一个User类,string 需要设置长度

  public class User
    {
        public int Id { get; set; }
        [MaxLength(10)]
        public string Name { get; set; }
        [MaxLength(16)]
        public string Account { get; set; }
        [MaxLength(16)]
        public string PassWord { get; set; }
    }

  然后再DBContext.cs中添加User模型集合

 [DbConfigurationType(typeof(MySqlEFConfiguration))]
    public class DBContext : DbContext
    {
        public DBContext()
            : base("name=DBContext")
        {
        }
        public virtual DbSet<User> Users { get; set; }
    }

 准备好了之后,.我们打开程序包管理控制台,选择ADO.NET实体对象模型所在的项目:Entity

   输入 :Add-Migration AddUserEntity   (注意中间空格,AddUserEntity这个是名字,自己可以随便取)

  会生成一个201704050709000_AddUserEntity.cs  Migration类

   如果没有报错,应该就成功了,

在输入 Update-Database 成功后

打开数据库看看Tabel 有没有生成。


 

Migration 相关命令 :

Add-Migration AddUserEntity –Force  强制替换之前生成的AddUserEntity  Migration文件

Update-Database 更新当前模型

Update-Database -TargetMigration 201704050709000_AddUserEntity(之前生成的Migration文件名)    回滚至之前的某个点的模型

 

转载于:https://www.cnblogs.com/wky-z/p/6668897.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值