【发布时间】:2011-07-14 10:11:27
【问题描述】:
我有一个 MVC3 和 EF 4 Code First 应用程序,它被配置为在模型更改时更改 DB,方法是将 DB Initializer 设置为 DropCreateDatabaseIfModelChanges<TocratesDb>,其中 TocratesDb 是我派生的 DbContext。
我现在通过向类添加属性来更改模型,但是当 EF 尝试删除并重新创建数据库时,我收到以下错误:
Cannot drop database "Tocrates" because it is currently in use.
我在此数据库上绝对没有任何其他连接打开。我假设我的 cDbContext 仍然与数据库有一个打开的连接,但是我能做些什么呢?
新: 现在我的问题是如何根据模型重新创建数据库。通过使用更通用的 IDatabaseInitializer,我失去了它并且必须自己实现它。
【问题讨论】:
-
这发生在我身上,因为我正在针对数据库调用 Membership 方法,这会造成冲突。我通过在使用会员系统之前强制初始化程序运行和种子来解决这个问题。
-
克里斯,我也有类似的问题,但我对 asp .net 真的很陌生。你能告诉他如何强制初始化程序在会员系统之前运行吗?谢谢
-
看看这个其他类似问题的答案stackoverflow.com/q/7004701/247328
标签: sql entity-framework code-first ef-code-first