我在数据库中有两个表。一个是成员,一个是客户。客户端表有两列用于创建行的人员以及已修改行的人员。从每列设置外键以映射回成员表。所有这一切都有意义,直到 一个针对数据库运行实体框架,我得到了以下代码。
public Member()
{
public virtual ICollection<Client> Clients { get; set; }
public virtual ICollection<Client> Clients1 { get; set; }
}
public Client()
{
public virtual Member MemberForCreated { get; set; }
public virtual Member MemberForModified { get; set; }
}
我的问题是为什么Entity Framework会考虑在成员表中为客户端表的每个外键关系创建一个支持集合?我真的需要这种关系,还是我能删除的东西?任何信息都会有用。
作为旁注:这些集合和关系可以在实体的导航属性集合下的.edmx文件中找到。
答案 0 :(得分:2)
默认情况下,EF关系是双向的。如果您不需要,可以删除任一方向。
您也可以重命名它们。例如,您可能希望将其称为Member.ClientsCreated
和Member.ClientsModified
。
Julie Lerman has a video examining unidirectional relationships.