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

本文关键字:支持 关系 实体 框架 为什么 | 更新日期: 2023-09-27 18:02:21

我在一个数据库中有两个表。一个用于会员,一个用于客户。客户端表有两列,分别表示谁创建了该行,谁修改了该行。从每个列设置外键以映射回成员表。这一切都说得通,直到一个运行实体框架对数据库,我得到以下代码生成为我。

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; }
}

我的问题是为什么实体框架认为在成员表中为每个外键关系到客户端表做一个备份集合?我真的需要这段关系吗?还是说这是我可以摆脱的?任何信息都会有用的。

作为旁注:这些集合和关系在实体的导航属性集合下的.edmx文件中找到。

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

EF关系默认是双向的。如果不需要,可以去掉任意一个方向

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

Julie Lerman有一个关于单向关系的视频