关于Entity Framework 的学习笔记

这篇博客探讨了在使用Entity Framework时,如何处理已存在数据库的情况,特别是在Code First模式下。文章指出,从EF 4.1版本之后,需要通过`Database.SetInitializer<BooksContext>(null);`来避免对`__MigrationHistory`表的检测。同时,作者分享了一些常用的EF迁移命令,如`Enable-Migrations`、`Add-Migration`和`Update-Database`,并提出在项目启动时自动执行`Update-Database`以简化数据库同步的过程。
摘要由CSDN通过智能技术生成

Entity Framework中DbContext首次加载OnModelCreating会检查__MigrationHistory表,作为使用Code Frist编程模式;

而实际先有数据库时,这种检测就是多余的了,所以需要屏蔽。不同的版本屏蔽的写法略有不同

  1. 在EF 4.1之前可以使用在OnModelCreating函数总加入下面语句来屏蔽这种检测:
     modelBuilder.Conventions.Remove<IncludeMetadataConvention>();
  2. 而到4.3之后需要使用,上列语句以被MSDN明确表示过时,所以需要新的方式取代:
    Database.SetInitializer<BooksContext>(null);

大家肯定对一条指令非常熟悉了,update-database,每次拿了新代码,基本上都要执行这条指令来同步一下数据库。以保证entity模型与数据库模型的一致性。那有没有偷懒的方法呢,这么问,答案当然是有了。 在项目运行开始的时候执行以下代码:

Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyDbContext, Configuration>()); 

当然对于EF的指令可不止这些,最常见的指令如下:

Enable-Migrations

Add-Migration <版本名>

Update-Database [-verbose]

Update-Database [-script] 

Update-Database -SourceMigration:<源版本名> -TargetMigration:<目标版本名>

Update-Database -SourceMigration:$InitialDatabase -targetMigration:<目标版本名>



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值