[英]Why is EF4.1 CodeFirst is creating a database even without a `Database.SetInitializer<>()` call?
I have commented out all calls to Database.SetInitializer<>()
in my EF Code First application. 我已经在EF Code First应用程序中注释了对
Database.SetInitializer<>()
所有调用。 However, even without any explicit calls to create the database, my Asp.net MVC application is still creating a database. 但是,即使没有任何显式调用来创建数据库,我的Asp.net MVC应用程序仍在创建数据库。 I have several reasons why this is an issue:
我有几个原因解释为什么这是一个问题:
1) I don't like the fact that EF is creating a new database without me telling it to. 1)我不喜欢EF在不通知我的情况下创建新数据库的事实。
2) It keeps trying to create (or update) the database on my webhost (even though the database already exists), and thus I am getting permission denied exceptions. 2)它一直尝试在我的Web主机上创建(或更新)数据库(即使数据库已经存在),因此我遇到了权限被拒绝的异常。
Does anyone have any insight why this seems totally out of my control? 有谁知道为什么这似乎完全不受我控制?
In CTP 5 the solution was 在CTP 5中,解决方案是
Database.SetInitializer<MyContext>(null);
I think this didn't change in EF 4.1. 我认为这在EF 4.1中没有改变。 If you comment the call out it defaults to
DropCreateDatabaseIfModelChanges
. 如果对注释进行注释,则默认为
DropCreateDatabaseIfModelChanges
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.