【发布时间】:2015-01-15 08:50:47
【问题描述】:
我的项目中有两个 DbContext:ApplicationDbContext 用于 ApplicationUser 模型(继承自 ASP.NET Identity IdentityUser 类),EFDbContext 用于所有其他模型。
他们使用一个数据库。
我为每个上下文创建了两个数据库初始化器:
public class ApplicationDbInitializer :
DropCreateDatabaseIfModelChanges<ApplicationDbContext>
{
protected override void Seed(ApplicationDbContext context)
{
// add Admin role and user
... code here
//
base.Seed(context);
}
}
和
public class EFDbInitializer : DropCreateDatabaseAlways<EFDbContext>
{
protected override void Seed(EFDbContext context)
{
}
}
问题:
我在 App 中遇到这样的错误
“System.Data.SqlClient.SqlException”类型的异常发生在 EntityFramework.dll 但未在用户代码中处理
附加信息:无法删除数据库“DatabaseName”,因为 它目前正在使用中。
我认为它尝试使用一个上下文初始化程序重新创建数据库,但数据库正在被另一个上下文使用。
如何处理这样的错误?
【问题讨论】:
标签: c# asp.net asp.net-mvc entity-framework