我是asp .net mvc3的新手。
我试图在标准的asp .net会员提供程序中存储附加用户信息。我创建了一个新实体UserAddress,并使用会员API将其与aspnet_tables同步。
然而,如果我对UserAddress类进行任何更改- asp.net不会删除和重新创建模型。我会收到以下错误:
无法删除数据库,因为它正在使用中。
我已经在stackoverflow和google上搜索过了。基本上,我的问题类似于这个:使用Entity Framework 4 Code First时出现的数据库正在使用错误
但是,我不确定如何实现chris建议的解决方案:
“这是发生在我身上的,因为我正在调用针对DB的Membership方法,这会导致冲突。我通过在使用Membership系统之前强制初始化程序运行和种子来解决此问题。”
我非常肯定这就是数据库正在使用的原因,因为我的代码在数据存储库中的这一点上崩溃:
var userid = Membership.GetUser.ProviderUserKey.ToString();
return db.UserAddress.SingleOrDefault(a => a.UserId == userid);
我该如何强制初始化程序在成员系统之前运行?
以下是我的代码片段:
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();
}
谢谢