简体   繁体   English

为什么EF4.1 CodeFirst即使没有“ Database.SetInitializer <>()”调用也会创建数据库?

[英]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.

相关问题 CodeFirst EF4.1 MVC针对遗留数据库 - 多重性冲突 - CodeFirst EF4.1 MVC Against legacy database - Multiplicity conflicts Database.SetInitializer中的DropCreateDatabaseIfModelChanges - DropCreateDatabaseIfModelChanges in Database.SetInitializer Database.SetInitializer是否不播种数据库? - Database.SetInitializer is not seeding the database? 放置Database.SetInitializer的地方 - Place to put Database.SetInitializer 使用Database.SetInitializer避免Shotgun手术 - Avoiding Shotgun Surgery with Database.SetInitializer 我可以将我的Database.SetInitializer调用放入具有基本字符串而不是静态构造函数的上下文构造函数中吗? - Can I put my Database.SetInitializer call in the context constructor with the base string instead of a static constructor? Database.SetInitializer(new MigrateDatabaseToLatestVersion <Context, Configuration> ()); 错误 - Database.SetInitializer(new MigrateDatabaseToLatestVersion<Context, Configuration>()); Error 查找数据库EF4.1中的记录总数 - Find total number of records in a database EF4.1 InProc会话或保存到数据库(使用EF4.1) - InProc Session or save to database (using EF4.1) Database.SetInitializer的目的 <ArContext> (null)在存储库中? - purpose of Database.SetInitializer<ArContext>(null) inside of repository?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM