2014-09-20 216 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"));