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

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

或者是、

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

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

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

但是EF和MYSQL就没那么好过了,再EF5下本人也是吃了不少苦,然后还是没弄出来,这里贴出个可能的解决方案连接:http://www.nsilverbullet.net/2012/11/07/6-steps-to-get-entity-framework-5-working-with-mysql-5-5/

如果你点开了以上的连接,你会发现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; }

}

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

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

 

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

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

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

运行程序

我们再来查看数据库

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

public class Log

{

public int Id { get; set; }

public string Message { get; set; }

}

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

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

Enable-Migrations -EnableAutomaticMigrations
执行成功后会帮你添加

我们再到Context类中添加

重新生成项目之后

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

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

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

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

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

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

MVC5+EF6+MYSQl,使用codeFirst的数据迁移的更多相关文章

  1. [实战]MVC5+EF6+MySql企业网盘实战(2)——用户注册

    写在前面 上篇文章简单介绍了项目的结构,这篇文章将实现用户的注册.当然关于漂亮的ui,这在追后再去添加了,先将功能实现.也许代码中有不合适的地方,也只有在之后慢慢去优化了. 系列文章 [EF]vs15 ...

  2. [实战]MVC5+EF6+MySql企业网盘实战(21)——网盘操作日志

    写在前面 上篇文章介绍了一个bootstrap的分页插件,这篇将弄一个完整的例子,就以日志分页为例说明如何请求服务端然后进行分页. 系列文章 [EF]vs15+ef6+mysql code first ...

  3. [实战]MVC5+EF6+MySql企业网盘实战(20)——Bootstrap Paginator

    写在前面 考虑到数据量的问题,特引入bootstrap的分页插件.插件下载地址:https://github.com/lyonlai/bootstrap-paginator 系列文章 [EF]vs15 ...

  4. [实战]MVC5+EF6+MySql企业网盘实战(17)——思考2

    写在前面 今天吃饭回来,突然有一个更好的想法,这里做一下记录. 系列文章 [EF]vs15+ef6+mysql code first方式 [实战]MVC5+EF6+MySql企业网盘实战(1) [实战 ...

  5. [实战]MVC5+EF6+MySql企业网盘实战(14)——思考

    写在前面 从上面更新编辑文件夹,就一直在思考一个问题,之前编辑文件夹名称,只是逻辑上的修改,但是保存的物理文件或者文件夹名称并没有进行修改,这样就导致一个问题,就是在文件或者文件夹修改名称后就会找不到 ...

  6. [实战]MVC5+EF6+MySql企业网盘实战(12)——新建文件夹和上传文件

    写在前面 之前的上传文件的功能,只能上传到根目录,前两篇文章实现了新建文件夹的功能,则这里对上传文件的功能进行适配. 系列文章 [EF]vs15+ef6+mysql code first方式 [实战] ...

  7. [实战]MVC5+EF6+MySql企业网盘实战(28)——其他列表

    写在前面 本篇文章将实现,其他文件类型的列表. 系列文章 [EF]vs15+ef6+mysql code first方式 [实战]MVC5+EF6+MySql企业网盘实战(1) [实战]MVC5+EF ...

  8. [实战]MVC5+EF6+MySql企业网盘实战(27)——应用列表

    写在前面 本篇文章将实现应用列表,同样和其他列表的不同之处,在于查询条件的不同. 系列文章 [EF]vs15+ef6+mysql code first方式 [实战]MVC5+EF6+MySql企业网盘 ...

  9. CodeFirst解决数据迁移问题

    CodeFirst解决数据迁移问题 分类: 数据库 设计模式 c#2013-04-24 17:56 137人阅读 评论(0) 收藏 举报 工程用的MVC + Entity Framework,根据Co ...

  10. [实战]MVC5+EF6+MySql企业网盘实战(4)——上传头像

    写在前面 最近又开始忙了,工期紧比较赶,另外明天又要去驾校,只能一个功能一个功能的添加了,也许每次完成的功能确实不算什么,等将功能都实现了,然后在找一个好点的ui对前端重构一下. 系列文章 [EF]v ...

随机推荐

  1. .NET里简易实现AOP

    .NET里简易实现AOP 前言 在MVC的过滤器章节中对于过滤器的使用就是AOP的一个实现了吧,时常在工作学习中遇到AOP对于它的运用可以说是很熟练了,就是没想过如果自己来实现的话是怎么实现的,性子比 ...

  2. Python高手之路【一】初识python

    Python简介 1:Python的创始人 Python (英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种解释型.面向对象.动态数据类型的高级程序设计语言,由荷兰人Guido ...

  3. js获取给定月份的N个月后的日期

    1.在讲js获取给定月份的N个月后的日期之前,小颖先给大家讲下getFullYear().getYear()的区别. ①getYear() var d = new Date() console.log ...

  4. 算法与数据结构(七) AOV网的拓扑排序

    今天博客的内容依然与图有关,今天博客的主题是关于拓扑排序的.拓扑排序是基于AOV网的,关于AOV网的概念,我想引用下方这句话来介绍: AOV网:在现代化管理中,人们常用有向图来描述和分析一项工程的计划 ...

  5. springMVC初探--环境搭建和第一个HelloWorld简单项目

    注:此篇为学习springMVC时,做的笔记整理. MVC框架要做哪些事情? a,将url映射到java类,或者java类的方法上 b,封装用户提交的数据 c,处理请求->调用相关的业务处理—& ...

  6. VICA 架构设计(1)

    本文记录最近完成的一个通用实时通信客户端的架构.   背景 我们公司是做税务相关的软件,有针对大客户 MIS 系统,也有针对中小客户的 SaaS 平台.这些系统虽然都是 B/S 的,但是也需要使用 A ...

  7. Spring获取ApplicationContext

    在Spring+Struts+Hibernate中,有时需要使用到Spring上下文.项目启动时,会自动根据applicationContext配置文件初始化上下文,可以使用ApplicationCo ...

  8. 水平可见直线 bzoj 1007

    水平可见直线 (1s 128M) lines [问题描述] 在xoy直角坐标平面上有n条直线L1,L2,...Ln,若在y值为正无穷大处往下看,能见到Li的某个子线段,则称Li为可见的,否则Li为被覆 ...

  9. 原生JS实现-星级评分系统

    今天我又写了个很酷的实例:星级评分系统(可自定义星星个数.显示信息) sufuStar.star();使用默认值5个星星,默认信息 var msg = [........]; sufuStar.sta ...

  10. A/B Testing的简要知识

    A/B testing主要用来检测网站或者APP的两个版本中哪一个更好,它的中心思想是把流量一分为二,一份用作experiment group,访问新的版本,另一份用作control group,访问 ...