mvc5 ef6 mysql code first 架构_MVC5+EF6+MYSQl,使用codeFirst的数据迁移

之前本人在用MVC4+EF5+MYSQL搭建自己的博客。地址:www.seesharply.com;遇到一个问题,就是采用ef的codefirst模式来编写程序,我们一般会在程序开发初期直接在global.asax里面加上

System.Data.Entity.Database.SetInitializer(new System.Data.Entity.DropCreateDatabaseIfModelChanges());//每次在模型更改的时候重建数据库

或者是、

System.Data.Entity.Database.SetInitializer(new System.Data.Entity.DropCreateDatabaseAlways());//每次都重建数据库

在开发初期这样是可取的,我们可以一边完善自己的模型类,然后不停更新数据库;

但是当我们进行到中期,已经产生了一些数据的时候,我们不想每次更新模型然后又要清空数据重建,这个时候,EF为我们提供了Magriation,可以在codeFirst的模式下,当模型发生更改的时候迁移数据,不得不说,EF和微软自家的SQlServer配合的相当默契,这里就不再赘述,这里给一个连接就好:http://www.cnblogs.com/libingql/p/3330880.html

如果你点开了以上的连接,你会发现EF5下面配置MYSQl的更新其实是比较麻烦,而且很容易出错,至少我是这样,哭晕在厕所;偶然间想到不是有EF6么,于是在EF6中尝试了下,发现十分简单;只用按照以下步骤,轻松搞定:

我们先建好项目,写好模型,仅用于测试:

public class User

{

[Key]

public int Id { get; set; }

public string Name { get; set; }

public Blog Blog { get; set; }

}

public class Blog

{

[Key]

public int Id { get; set; }

public string Name { get; set; }

public string Content { get; set; }

}

5BA3AA15F768416082C53EE993EEABE9

然后在Nuget上面添加EntityFrameWork,注意,如果你是MVC5的项目可以直接添加控制器,然后选择带EF的的视图,系统会帮你添加EF6,如果是MVC4,请手动到Nuget撒很添加EF6

E5C3B116747F46C084DF0927A7C8B1DD

添加完毕,然后建立控制器

374B7DB6ED7E4447A8550B8E8E2255B0

3359ED90B7044B319BF637DF1F12A13F

点添加,这里会自动帮你生成一些列视图操作(不过咱们不需要,需要的儿时那个Context),然后再context类中添加以下代码

99C4BC0DF79B4D699C10CBD516A7DEF2

好了,再到配置文件里面添加Mysql的连接字符串,名字就是整个Context类中配置的名字,默认就是contextt类名

0AE6AAF1D0E148C98F73334F77C00BA8

好了,好了,这里还需要添加Mysql的conecter,于是我们到Nuget上去添加

4AC71B517B1F46DAA661D1D99EAA4E1B

运行程序

1428D875DC804E18A3CAAFA4B8EB789D

我们再来查看数据库

DF5FE1CA848045E3A908867BB9DA0A1D

接下来我们执行迁移:首先添加一个log类

public class Log

{

public int Id { get; set; }

public string Message { get; set; }

}

这时候如果直接运行会报错,我们需要执行迁移;

好了,在程序管理控制台中输入

Enable-Migrations -EnableAutomaticMigrations

执行成功后会帮你添加

E63D1AF6754540048A1719348CB855F4

我们再到Context类中添加

6225A81078624C02B14A39EB1A0DF0F3

重新生成项目之后

然后添加Dbset:    public DbSet Logs { get; set; }

在到程序管理控制台输入 add-migration LogTable,我们看到程序帮我们生成了这个,

FEF198368F85421B9926089C65CE4E79

其实内容就是对表的一系列操作

最后,再倒1程序管理控制台输入 update-database,

执行后,我们来查看数据库

8D7A52406099450685D6F7496CF18694

好了,执行成功,祝你好运(学习中,有什么好的建议欢迎留言:www.seesharply.com)

原文:http://www.cnblogs.com/seesharply/p/4809678.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值