实体框架和一对多关系

时间:2014-09-20 21:09:47

标签: entity-framework entity-relationship

我试图与EF建立一对多的关系。

用户可以拥有许多(或没有)访问记录。

  • 用户主键是userid
  • UserAccess外键是userid

所以我的设置如下:

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 个答案:

答案 0 :(得分: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"));