本人最近在开发一个网站。用的开发框架是MVC3,因为之前也只用过一次,所以这次从零开始的这个网站还是费了我一点时间。抱着学习的心态一步一步走来,却发现了很多值得我为之留下一点足迹的冲动。
先说说我的IDE:VS2010,Framework版本是.NET4.0,框架是MVC3,在前一次用MVC3开发的时候,借助于EF4.1,感觉还好,在database first的开发方式下开发很方便,建好数据库导入模型就基本可以写逻辑和页面了,感觉实在是太方便了。但是有一个缺点,就是每次要加减字段,加减数据表的时候麻烦的很,要不推倒以前的重新来,要不就要手动修改,一个字:累。那时候就想,微软不会这样2吧,开发的东西让我们这样折腾,那还不折腾死。但是自己明白,微软哪有那么2,肯定有解决的办法,所以就翻看园友的博客和看书,发现还有个叫什么code first的,据说更方便,而且还能搞定我出现的问题,就是所谓的数据迁移,而且数据不丢失,想什么时候加字段就加,想什么时候加表同样不含糊,哇,想想该有多方便啊,所以在设计开发这个网站一开始我就打定了主意——用Code First来整一个。
首先,在用这个开发模式之前要了解一下实现数据迁移的EF版本,4.1-4.3基本是不行的,后来我直接在Nuget中把EF升级到了6,一下子什么都支持了,因为到我写这个文章为止,6是最高版本了,哈哈。好了,废话说了一大箩筐,上正题了:
在code First模式下开发做的数据迁移最最主要的是用好Code First的命令行以及处理的先后顺序:
字段有如下这些:
1.Enable-Migrations -Force (-Force)这个是覆盖前面的这个操作
2.Add-Migration
3.Add
4.update-database -verbose
5.createtable
6.remove
7.altertable
还有很多,不止这些……
看着这么多命令真不知道如何下手!很简单,下面看一个新增表的例子:
第一步:>PM Enable-Migrations -Force
第二步:>PM Add-Migration
第三步:>PM createtableT_XXX
第四步:>PM update-database -verbose
好了,新增一个数据表就算是完成了。
2.新增表字段
第一步:>PM
3.update-database -verbose,好了提交到了数据库中了
还有减字段:
1相同,2前部分相同,但是输入命令的时候要输入:removeUrl,回车,3相同
加表:
1相同,2前部分相同,但是输入命令的时候要输入:createtableT_XXX这样。T_XXX是表名,3相同
修改表字段验证规则:
1相同,2前部分相同,但是输入命令的时候要输入:altertable,回车,好了,3相同
好了,就学了这些个,感觉很方便,又不丢失数据。太妙了……
俗话说的好:麻雀虽小,五脏俱全。从这个网站开始零起步到现在,大概的功能基本实现了,但是自我感觉还有很多欠缺的东西要自己去完善。