ASP.NET MVC 4 如何避免数据库被自动创建或自动迁移
保哥说要想避免数据库被自动创建或自动迁移,可以在Global.asax文件里的Application_Start方法中加入:
System.Data.Entity.Database.SetInitializer<Models.MyContext>(null);
注:MyContext是数据上下文类。
即Global.asax文件如下:
public class MvcApplication : System.Web.HttpApplication { protected void Application_Start() { AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(GlobalConfiguration.Configuration); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); System.Data.Entity.Database.SetInitializer<Models.MyContext>(null); } }
测试了下,改变model里的实体类属性后确实没有提示数据库迁移了,但是如果在实体类中新增一个属性,然后运行程序,却会提示刚加入的属性无效。如在实体类中加入:
public string MyProperty{ get; set; }
运行后提示:Invalid column name 'MyProperty'.
这样来看数据库表和实体类已经是单独的个体了,他们之间不会再互动,要分别去数据库和实体类2个地方更改。
--End--