내가 표준의 ASP .NET 멤버 자격 공급자를 통해 추가 사용자 정보를 저장하기 위해 노력하고 .NET mvc3데이터베이스를 삭제할 수 없습니다 + EF 코드 첫번째
에게 ASP에 새로운 오전. 나는 새로운 엔티티 UserAddress를 만들었고 멤버쉽 API를 사용하여 aspnet_tables와 동기화했다.
그러나 이제 UserAddress 클래스를 변경하면 asp.net이 모델을 삭제하고 다시 작성하지 않습니다. 오류가 발생합니다.
데이터베이스가 사용 중이기 때문에 삭제할 수 없습니다.
나는 stackoverflow와 (과) google을 검색했습니다. 나는에 대한 회원 메소드를 호출했기 때문에
"이것은 나에게 무슨 일이 일어 : 기본적으로, 내 문제는 내가 크리스 솔루션으로 제안 무엇을 구현하는 방법을 잘 모르겠습니다, 그러나이
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