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

M. *_*har 15 entity-framework ef-code-first asp.net-mvc-4 visual-studio-2012

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

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

我想使用EF,但不使用其代码优先功能.我希望应用程序出错,而不是根据我的代码创建或修改我的数据库.(我只是不能忍受我的数据库在幕后被改变的感觉...我希望应用程序使用我创建的确切数据库...如果有任何必须更改的东西,我会自己动手)

这是新的Ef(VS2012)的可能吗?

我见过很多人问这个,但到目前为止我无法找到答案.

Sla*_*uma 23

您可以使用Code First,并通过将数据库初始化程序设置为以下内容,确保在更改模型时不会更新或覆盖数据库null:

Database.SetInitializer<MyDbContext>(null);
Run Code Online (Sandbox Code Playgroud)

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

您还可以使用"反向工程"功能从现有数据库创建"代码优先"模型.这里解释: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