Jon*_*nny 7 sql database entity-framework code-first
我有一个导致脱发的问题......
我使用Code First(EF)进行项目构建; 一切都很好,它就像一个魅力但是,我找不到一个合适的方式允许数据库更改(通过.sql脚本),而没有应用程序在启动时发脾气,因为架构已更改.
我已阅读并阅读此问题,我已删除EdmMetaData表,因此无法比较数据库的哈希值,但随后读取了EF的错误,如果删除它,它仍然认为架构已更改(如它无法识别丢失的表,因此它比较一个空字符串!).
另外,我尝试在Global.asax文件中使用Database.SetInitializer(null),但这意味着我以后无法访问数据模型.
如果架构发生变化等,每个人都会讨论使用删除数据库的选项.
这就是我要找的东西:
对于EF/Code First来做......没事!甜蜜的FA!没出息!
...如果我通过外部应用程序更改架构,我希望它完全忽略这些更改,并且只是ASSUME我已经通过.sql脚本对相关的模型更改进行了这些数据库更改.如果我错过了一个专栏或桌子,那么我接受了我的愚蠢,我希望发脾气,但是,直到我犯了一个错误,我希望EF相信我.
这意味着我可以随时使用.sql脚本轻松更新任何客户端,而不用担心EF会出现问题!:(
任何想法的人?
使用更新的Entity Framework版本,您不再需要执行Ladislav Mrnka所说的内容.从EF 4.3开始,您只需要将WebContext的初始化程序设置为null.例如:
Database.SetInitializer<FabrikamFiberWebContext>(null);
Run Code Online (Sandbox Code Playgroud)
除了设置初始化程序以null将其添加到您的上下文类:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
model.Conventions.Remove<IncludeMetadataConvention>();
}
Run Code Online (Sandbox Code Playgroud)
它将关闭哈希比较.
| 归档时间: |
|
| 查看次数: |
2296 次 |
| 最近记录: |