【发布时间】:2015-06-03 15:52:10
【问题描述】:
我想要一个公司的联系人列表。但是 Company 被 ContactExtension 引用,而 ContactExtension 被 Contact 引用。 我不确定这是否可能,但我试试这个:
[Table("Company", Schema = "dbo")]
public class Company
{
[Column("ID")]
[Key]
public int ID { get; set; }
[Column("Name")]
public String Name { get; set; }
[ForeignKey(?)]
public virtual ICollection<Contact> MyContacts { get; set; }
}
[Table("Contact", Schema = "dbo")]
public class Contact
{
[Column("ID")]
[Key]
public int ID { get; set; }
[Column("Name")]
public String Name { get; set; }
[Column("ContactExtensionID")]
public int ContactExtensionID { get; set; }
[ForeignKey("ContactExtensionID")]
public virtual ContactExtension ContactExtension { get; set; }
}
[Table("ContactExtension", Schema = "dbo")]
public class ContactExtension
{
[Column("ID")]
[Key]
public int ID { get; set; }
[Column("Name")]
public String Name { get; set; }
[Column("CompanyID")]
public int CompanyID { get; set; }
}
如果我写ForeignKey["CompanyID"],则有问题,因为Contact 中没有CompanyID 列。
如何指定外键 CompanyID 在 ContactExtension 中?
我想找到一个没有Fluent Api 的解决方案。
【问题讨论】:
-
你在使用
Fluent API吗? -
不,我想找到没有 Fluent Api 的解决方案
-
你见过this吗?
-
是但外键不在Contact中,它在ContactExtension中
-
来自
ContactExtension的Contact的virtual属性在哪里?
标签: c# .net entity-framework attributes