我是新来的ASP.NET MVC3无法删除数据库+ EF代码第一
我试图存储超过标准的ASP.NET成员提供额外的用户信息。我创建了一个新的实体UserAddress,并使用成员API将其与aspnet_tables同步。
不过,现在如果我做任何更改UserAddress类 - asp.net不删除并重新创建模型。我得到的错误,因为它是在使用
无法删除数据库。
我已搜查计算器和谷歌。基本上,我的问题是类似这样的
Database in use error with Entity Framework 4 Code First
但是,我不知道如何实现什么克里斯提出的解决方案:
“这是发生在我身上,因为我打电话对会员的方法DB和那是创建一个冲突。我解决这个迫使初始化器运行和种子之前使用会员制度“
我非常确定这是为什么数据库正在使用的原因,因为我的代码在数据存储库中的这一点:
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();
}
感谢
我只是在' db.Database.Initialize(true);'现在改为。 – mpen 2012-09-05 04:02:13