15

如何在 EF (Visual Studio 2012) 中禁用代码优先功能

我正在使用 Visual Studio 2012、MVC4(Internet 应用程序模板)。

我想使用 EF,但不想使用它的代码优先功能。我希望应用程序出错,而不是根据我的代码创建或修改我的数据库。(我无法忍受这种我的数据库在幕后被更改的感觉......我希望应用程序使用我创建的确切数据库......如果有任何需要更改的东西,我会我自己做)

新的 Ef (VS2012) 有可能吗?

我看到很多人问这个问题,但到目前为止我无法找到答案。

4

1 回答 1

23

您可以使用 Code First 并确保您的数据库在更改模型时永远不会被更新或覆盖,方法是将数据库初始化程序设置为null

Database.SetInitializer<MyDbContext>(null);

它是类的静态方法,Database应在应用程序开始时调用,例如在 global.asax 或上下文类的静态构造函数中。这样做您必须手动更改模型类和数据库模式,以便它们匹配。

您还可以使用逆向工程师功能从现有数据库创建 Code First 模型。这里解释:http: //msdn.microsoft.com/en-us/data/jj200620

或者,如果您根本不想使用 Code First 并与模型设计器一起工作,您可以使用 Database First 方法,此处解释:http: //msdn.microsoft.com/en-us/data/jj206878

关于所有可能选项的概述在这里:http: //msdn.microsoft.com/en-us/data/ee712907.aspx

于 2013-02-02T15:01:29.567 回答