ef mysql 初始化连接_EF初始化mysql数据库codefirst

EF初始化mysql数据库codefirst

1、添加引用EntityFramework、EntityFramework.SqlServer、MySql.Data、MySql.data.Entity.ef6

或者用NuGet安装EntityFramework、MySql.Data.Entity

2、在配置文件中加入

3、新建UserContext类,此类继承DbContext

public classUserDBContext:DbContext

{publicUserDBContext()

:base("name=MySql")

{ }去掉表名复数

//protected override void OnModelCreating(DbModelBuilder modelbuilder)//{//modelbuilder.Conventions.Remove();//}

public DbSet User { get; set; }

}

4、System.Data.Entity;

//在没有数据库时创建一个,已存在,默认;如果pcontext.Patients.Add(p);添加一条,如果数据库已存在报错

Database.SetInitializer(new CreateDatabaseIfNotExists());//在模型改变时,自动重新创建新的数据库,在开发过程中使用//Database.SetInitializer(new DropCreateDatabaseIfModelChanges());//每次运行时,都重新生成数据库//Database.SetInitializer(new DropCreateDatabaseAlways()); using (UserDBContext udb=new UserDBContext())

{

//判断数据库是不是已经存在

if (!context.Database.Exists())

{//如果数据库已存在不加Database.SetInitializer(new CreateDatabaseIfNotExists());,会报错udb.Database.Initialize(true);//直接添加一条数据,会生成数据库和数据, //udb.Patients.Add(u);

udb.SaveChanges();

}

}

5、在那个项目里面运行,就在那个项目里加上面的配置文件,安装EntityFramework、EntityFramework.SqlServer、MySql.Data、MySql.data.Entity

可以把上面的操作写在、、方法里、、直接在global中调用,程序启动时初始化数据库。

6、还可以同时把数据也初始化,

public class DataInitUser : IDataInitializer{public voidInitialize(mmsDbContext context)

{var users = new List()

{new muser(){name="张三", user_id=123, org_id=123456789, phone_no="1234567890123", otype=operator_type.admin, enabled=true}

};

users.ForEach(u=>context.user.Add(u));

}

}

初始化方法

public classmmsDataBuilder

{public voidBuild()

{

Database.SetInitializer(new CreateDatabaseIfNotExists());using (var context = newmmsDbContext())

{if (!context.Database.Exists())

{new List>() {newDataInitUser()

可以添加多个实体类

}.Setup(newmmsDbContext());

context.SaveChanges();

}

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值