实体框架多对多代码优先

时间:2014-07-28 14:57:43

标签: c# .net entity-framework

我不确定创建这种关系的最佳方式。这个例子我有这两个实体。

人与人地址

public class Person
{
   public string Name { get; set; }
   public virtual ICollection<PersonAddressLink> HomeAddresses { get; set; }
   public virtual ICollection<PersonAddressLink> WorkAddresses { get; set; }
}

public class Address
{
   public string AddressString {get; set; }
   public virtual ICollection<Person> People { get; set; }
}
需要

和链接表,因为它包含其他信息。

public class PersonAddressLink
{
  public Address HomeAddress { get; set; }
  public Address WorkAddress { get; set; }

  public int SomeOtherInt { get; set; }
  public string SomeOtherString { get; set; }

}

问题是EF不知道如何分离person.HomeAddresses / person.WorkAddresses上的实体。我试过mergin HomeAddress&amp; WorkAddresses到这样的单个集合中:

   public virtual ICollection<PersonAddressLink> WorkAddresses { get; set; }

但它仍然无法工作。

我只是在寻找有关如何制作此类内容的建议,以便首先使用EF Code。

我希望这是有道理的。

由于

1 个答案:

答案 0 :(得分:0)

延迟回复但我通过在SQL Management studio中创建表并使用生成Code First的反向工程功能来确保映射正确。我需要使用两个独立的实体。