我是 asp .net mvc3 的新手
我正在尝试通过标准的 asp .net 会员提供程序存储其他用户信息。我创建了一个新实体 UserAddress,并使用会员 API 将其与 aspnet_tables 同步。
但是,现在如果我对 UserAddress 类进行任何更改 - asp.net 不会删除并重新创建模型。我得到错误
无法删除数据库,因为它正在使用中。
我搜索了stackoverflow和谷歌。基本上,我的问题与此类似
Entity Framework 4 Code First 的数据库使用错误
但是,我不确定如何实施 chris 建议的解决方案:
“这发生在我身上,因为我正在针对数据库调用 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();
}
谢谢