MVC4实体框架和种子混淆

时间:2012-12-05 11:40:15

标签: asp.net asp.net-mvc entity-framework

我希望有人可以帮助我,我创建了Code First EF MVC4项目。有了这个,我使用了Seed方法和一个使用DropCreateDatabaseAlways的DbInitializer将数据插入到数据库中。但是,根据Asp.Net网站,您必须删除发布时种子数据库的所有代码。

我的问题是,如果我不能使用Seed方法而不是每次都添加数据,那么如何将数据添加到数据库(通过与Seed方法相同的过程)。除了通过Database Explorer或SQL Server Management Studio添加到数据库之外别无选择吗?

创建第二个DbInitializer也是值得的,所以我有一个用于测试,一个用于发布,因为我不想删除所有种子代码?

1 个答案:

答案 0 :(得分:0)

我们的方法是将您的开发环境连接到空的实时数据库,运行创建和种子方法,然后在推送到应用服务器之前编辑代码以删除它们,并适当地减少数据库权限。

如果你不能这样做是因为你的DBA不允许这样做,另一种方法是在dev服务器上创建一个带有种子数据的原始数据库,然后让DBA备份并将数据库恢复到实时环境。

基本上,是的,将创建和种子代码保留在实时应用程序中并不是一个好主意,但仍有一些方法可以使用代码优先方法来制作和播种实时数据库。

我还会考虑使用迁移。它们提供与代码优先方法相同的所有功能,但具有更精细的控制和更少的权限。