2012-08-03 1 views
0

갑자기 EF 4.1에서 4.3으로 업그레이드 한 후 다음 오류가 발생하기 시작했습니다.코드 첫 번째를 사용하여 Entity Framework 4.1에서 4.3으로 업그레이드 할 때 Fluent-API와 호환되지 않습니다.

내부 예외 : System.Data.SqlClient.SqlException (0x80131904) : 이름이 'IX_AccountId'인 인덱스 또는 통계가 'User'테이블에 이미 있으므로 작업을 수행하지 못했습니다.

다음은이 오류를 생성하는 관련 코드입니다.

public class Account { 

    public Account() { 
     Users = new HashSet<User>(); 
    } 

    [Key] 
    public int AccountId { get; set; } 

    public virtual ICollection<User> Users { get; private set; } 

} 

public class User { 

    [Key] 
    public int UserId { get; set; } 

    public int AccountId { get; set; } 

    public virtual Account Account { get; set; } 
} 


protected override void OnModelCreating(DbModelBuilder modelBuilder) { 

     modelBuilder.Entity<Account>() 
      .HasMany<User>(a => a.Users) 
      .WithRequired() 
      .HasForeignKey(u => u.AccountId); 

     modelBuilder.Entity<User>() 
      .HasRequired(u => u.Account) 
      .WithMany() 
      .HasForeignKey(u => u.AccountId); 

    } 

답변

0

은 지금 지금 필요한 명시 적으로 위의 WithMany 내에서 탐색 속성을 선언 할 필요가 있다고 밝혀졌습니다.

 modelBuilder.Entity<User>() 
      .HasRequired(u => u.Account) 
      .WithMany(a => a.Users) 
      .HasForeignKey(u => u.AccountId); 
:

내 문제를 해결
관련 문제