2015-01-21 36 views
1

我的理解是,约定是在DBContext方法中重写的OnModelCreating方法中使用Entity Framework Fluent API;并且这只在数据库创建期间运行。EF Fluent API可以在数据库创建后

这会让我相信,如果您每次发生更改时都要删除并创建数据库,则Fluent API只能多次使用(例如在开发数据库时)。

我的问题是:有没有办法利用Fluent API进行数据库配置,仅用于数据库更新,例如运行数据库迁移命令“update-database”时?

回答

1

DbContext.OnModelCreating documentation

典型地,该方法被称为仅在创建派生上下文的第一个实例一次。然后,该上下文的模型将被缓存,并用于应用程序域中上下文的所有更多实例。

因此,在创建模型时调用它,而不仅仅是在创建数据库时调用它。如果在添加迁移后或在发布新版本后启动网站时致电Update-Database,则会发生这种情况。

参考文献:

https://stackoverflow.com/a/6181867/150342

http://elegantcode.com/2012/04/12/entity-framework-migrations-tips/

+1

谢谢...我想我只是想确定最好的办法就是要能够发展自己的数据库,我开发的MVC应用程序,添加模型等。看起来好像有两个根,指向初始化程序在Chages之后的Drop和Recreates,或通过Data Migrations/Package Manager Console显式应用更改。前者似乎对我更直接。偏好反馈意见。 – 2015-01-22 01:02:06

+1

从上面的优雅代码链接。提示号码1 - “不要使用自动迁移自动迁移对于演示和概念的快速验证很有趣,但在生产应用程序中没有位置” – Colin 2015-01-22 09:53:15

相关问题