EntityFramework CodeFirst 4.3 step by step (3)
2012-07-19 23:04
309 查看
连续两天的博客平均访问量上千,给了我很大的鼓舞啊!今天继续讲Migration。
首先我们来看一个需求,假设现在不允许Users表有重复的MyBlog,那我们怎么修改呢?
现在打开Migrations文件夹,看看下面多了些什么?仔细观察不难发现,多了一些以时间戳和昨天输入的命令字符串组成的类文件,
如201207181401353_AddUser.cs是用来创建User的,代码如下:
SetValueOfMyBlog
3. Package Manager Console中输入"update-database -verbose"命令然后回车,搞定!
注意:每个Migration类文件只能用update-database -verbose命令执行一次,下次update-database -verbose命令执行的时候不会执行已经执行过的Migration类文件,即使你修改了它。
CodeFirst还可以将数据库可以恢复到某一个版本,如果我们想将revert刚才的Add-Migration SetValueOfMyBlog,我们需要使用‘Update-Database –TargetMigration:"SetValueOfMyBlog"命令,不难发现这个Migration的过程其实就是一个入栈和弹栈的过程,栈中元素就是这一个个Migration类文件。
嘿,哥们,装ReSharper了吗?装的话F12一下DbMigration类进去看看吧,究竟Migration能做多少事情,一下DbMigration类的源码就知道了,我唯一觉得有点反感的是里面居然没有注释,顿时就不想看下去,我承认它的很多方法名字都取的很好,但是方法参数总要解释一下的吧。。。这要在我们公司StyleCopy是run不过去的,代码就不能check in(不得不说德国人做事情真是细致入微啊)。。。突然又想写一写Clean Code方面的东西了,先欠着园子里的朋友,以后还上!
首先我们来看一个需求,假设现在不允许Users表有重复的MyBlog,那我们怎么修改呢?
现在打开Migrations文件夹,看看下面多了些什么?仔细观察不难发现,多了一些以时间戳和昨天输入的命令字符串组成的类文件,
如201207181401353_AddUser.cs是用来创建User的,代码如下:
SetValueOfMyBlog
public partial class SetValueOfMyBlog : DbMigration { public override void Up() { Sql("update Users set MyBlog=str(UserId)+'www.cnblogs'"); } public override void Down() { } }
3. Package Manager Console中输入"update-database -verbose"命令然后回车,搞定!
注意:每个Migration类文件只能用update-database -verbose命令执行一次,下次update-database -verbose命令执行的时候不会执行已经执行过的Migration类文件,即使你修改了它。
CodeFirst还可以将数据库可以恢复到某一个版本,如果我们想将revert刚才的Add-Migration SetValueOfMyBlog,我们需要使用‘Update-Database –TargetMigration:"SetValueOfMyBlog"命令,不难发现这个Migration的过程其实就是一个入栈和弹栈的过程,栈中元素就是这一个个Migration类文件。
嘿,哥们,装ReSharper了吗?装的话F12一下DbMigration类进去看看吧,究竟Migration能做多少事情,一下DbMigration类的源码就知道了,我唯一觉得有点反感的是里面居然没有注释,顿时就不想看下去,我承认它的很多方法名字都取的很好,但是方法参数总要解释一下的吧。。。这要在我们公司StyleCopy是run不过去的,代码就不能check in(不得不说德国人做事情真是细致入微啊)。。。突然又想写一写Clean Code方面的东西了,先欠着园子里的朋友,以后还上!
相关文章推荐
- EntityFramework CodeFirst 4.3 step by step (4)
- EntityFramework CodeFirst 4.3 step by step (1)
- EntityFramework CodeFirst 4.3 step by step (2)
- [1] Entity Framework / Code First
- Entity Framework Code First Migrations--EF 的数据迁移
- Code First Entity Framework和Lambda表达式First/Where可能会组成的陷阱
- Entity Framework Code First 在Object Join Linq查询时出现全表查询的语句。
- Entity Framework Code-First(1):Introduction
- Entity Framework Code-First(9.6):DataAnnotations - StringLength Attribute
- Entity Framework Code-First(15):Cascade Delete
- Entity Framework Code First (四)Fluent API - 配置属性/类型
- 第二篇:Entity Framework CodeFirst & Model 映射
- 第三篇:Entity Framework CodeFirst & Model 映射 续篇 EntityFramework Power Tools 工具使用
- Entity Framework Code First 学习日记(4)
- Entity Framework Code First 数据迁移
- Entity Framework Code First - Stop autoincrement and use my Primary Key
- ADO.NET Entity Framework CodeFirst 如何输出日志(EF4.3)
- Code First :使用Entity. Framework编程(4)
- Entity Framework Code First在Oracle下的伪实现(转)
- Entity Framework Code first