2014-09-20 313 views
0

我試圖建立與EF的一對多關係。實體框架和一對多關係

用戶可以有很多(或沒有)訪問記錄。

  • 用戶主鍵是用戶ID
  • UserAccess外鍵是用戶ID

所以我的設立如下:

public class User 
{ 
    // ... 
    public virtual ICollection<UserAccess> UserAccess { get; set; } 
} 

public class UserAccess 
{ 
    // ... 
    public virtual User User { get; set; } 
} 

和我UserAccessMap代碼:

this.HasMany(t => t.UserAccess).WithMany().Map(m => m.MapLeftKey("USERID")); 

我在這裏做錯了什麼?

回答

1

您正在做多對多的關係,請參閱配置模式。

HasMany.. WithMany.. 

的一對多配置應該是HasMany.. WithRequired/WithOptional..HasRequired/HasOptional.. WithMany..

UserAccessMap

HasRequired(t => t.User).WithMany(x => x.UserAccess).Map(x=> x.MapKey("USERID")); 

或者在UserMap

HasMany(t => t.UserAccess).WithRequired(x => x.User).Map(x=> x.MapKey("USERID"));