gpt4 book ai didi

sql - 无法删除数据库,因为它正在使用 + EF 代码优先

转载 作者:行者123 更新时间:2023-12-04 17:02:33 25 4
gpt4 key购买 nike

我是 asp .net mvc3 的新手

我正在尝试通过标准 asp .net 成员资格提供程序存储其他用户信息。我创建了一个新实体 UserAddress,并使用成员资格 API 将其与 aspnet_tables 同步。

但是,现在如果我对 UserAddress 类进行任何更改 - asp.net 不会删除并重新创建模型。我收到错误

无法删除数据库,因为它正在使用中。

我已经搜索过 stackoverflow 和谷歌。基本上,我的问题与此类似

Database in use error with Entity Framework 4 Code First

但是,我不确定如何实现克里斯建议的解决方案:

“这发生在我身上,因为我正在对数据库调用 Membership 方法,这造成了冲突。我通过在使用 Membership 系统之前强制初始化程序运行和种子来解决这个问题”

我很确定这就是使用数据库的原因,因为我的代码此时在数据存储库中失败了:

var userid = Membership.GetUser.ProviderUserKey.ToString();
return db.UserAddress.SingleOrDefault(a => a.UserId == userid);

如何强制初始化程序在成员(member)系统之前运行?

我的代码片段如下:
public class UserAddress
{
public int UserAddressId { get; set; }
public string UserId { get; set; }
public string FlatNo { get; set; }
public string BuildingName { get; set; }
public string Address1 { get; set; }
public string Address2 { get; set; }
public string PostCode { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Country { get; set; }
public long MobilePhone { get; set; }
}

public class NPLHWebsiteDb : DbContext
{
public DbSet<UserAddress> UserAddress { get; set; }
}

public class NPLHWebsiteInitializer : DropCreateDatabaseIfModelChanges<NPLHWebsiteDb>
{
protected override void Seed(NPLHWebsiteDb context)
{
var userAddress = new List<UserAddress>
{
new UserAddress {
UserAddressId = 1,
UserId = "153",
FlatNo = "6.4",
BuildingName = "Wilton Plaza",
MobilePhone = 9810110123,
}
};
userAddress.ForEach(a => context.UserAddress.Add(a));
context.SaveChanges();
}

谢谢

最佳答案

之前我使用 SQL Server Management Studio 连接到 SqlExpress 数据库时遇到过这个问题,并且在我开始我的项目时打开了几个查询。

如果这是您正在做的事情 - 在开始您的项目之前尝试断开与 SSMS 中的数据库的连接。

关于sql - 无法删除数据库,因为它正在使用 + EF 代码优先,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11874167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com