为什么即使没有`Database.SetInitializer<>()`调用,EF4.1 Code First也在创建数据库?

时间:2011-03-25 23:45:52

标签: c# entity-framework code-first entity-framework-4.1

我在EF Code First应用程序中注释了对Database.SetInitializer<>()的所有调用。但是,即使没有任何显式调用来创建数据库,我的Asp.net MVC应用程序仍在创建数据库。我有几个原因可以解决这个问题:

1)我不喜欢EF在没有告诉它的情况下创建新数据库这一事实。

2)它一直试图在我的webhost上创建(或更新)数据库(即使数据库已经存在),因此我获得了权限被拒绝的异常。

有没有人有任何见解为什么这似乎完全不受我的控制?

1 个答案:

答案 0 :(得分:4)

在CTP 5中,解决方案是

Database.SetInitializer<MyContext>(null);

我认为这在EF 4.1中并没有改变。如果您对该呼叫发表评论,则默认为DropCreateDatabaseIfModelChanges