为什么实体框架会为外键生成支持关系?

时间:2011-07-18 19:17:42

标签: c# entity-framework entity-framework-4.1

我在数据库中有两个表。一个是成员,一个是客户。客户端表有两列用于创建行的人员以及已修改行的人员。从每列设置外键以映射回成员表。所有这一切都有意义,直到 一个针对数据库运行实体框架,我得到了以下代码。

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文件中找到。

1 个答案:

答案 0 :(得分:2)

默认情况下,EF关系是双向的。如果您不需要,可以删除任一方向。

您也可以重命名它们。例如,您可能希望将其称为Member.ClientsCreatedMember.ClientsModified

Julie Lerman has a video examining unidirectional relationships.

相关问题