我有一个使用 EF 4.1(使用模型优先风格)的应用程序,我想在更新模型并删除并重新创建数据库时初始化数据库。
我花了几个小时试图找到合适的文档,我认为 Database.SetInitializer 是要走的路,但事实证明这需要一个 DbContext,并且生成的代码使用 ObjectContext。
我相信我可以在幕后摆弄以将 T4 模板切换为使用 DbContext,但肯定有一种方法可以使用开箱即用的模型优先生成的代码吗?
[我应该完全放弃模型优先吗?]
我有一个使用 EF 4.1(使用模型优先风格)的应用程序,我想在更新模型并删除并重新创建数据库时初始化数据库。
我花了几个小时试图找到合适的文档,我认为 Database.SetInitializer 是要走的路,但事实证明这需要一个 DbContext,并且生成的代码使用 ObjectContext。
我相信我可以在幕后摆弄以将 T4 模板切换为使用 DbContext,但肯定有一种方法可以使用开箱即用的模型优先生成的代码吗?
[我应该完全放弃模型优先吗?]
模型优先方法没有任何自动数据库生成。
当您首先使用模型时,您只需右键单击设计器窗格并选择从模型生成数据库。它将创建数据库脚本,您可以执行该脚本来创建数据库。VS2010 有一个名为Database Generation Power Pack的附加插件,它允许一些更高级的场景,例如在现有数据库和模型之间生成更改脚本,但这个工具至少需要 VS2010 Premium。