0
我有一个场景,我首先使用EF代码有点混乱。我创建的类是下面:代码与多个外键的第一个关系
public class Company
{
public int Id { get; set; }
public List<Contact> Contacts { get; set; }
public List<Job> Jobs { get; set; }
}
public class Contact
{
public int Id { get; set; }
[ForeignKey("CompanyId")]
public virtual Company Company { get; set; }
public int CompanyId { get; set; }
public List<Job> Jobs { get; set; }
}
public class Job
{
public int Id { get; set; }
[ForeignKey("CompanyContactId")]
public virtual CompanyContact CompanyContact { get; set; }
public int CompanyContactId { get; set; }
[ForeignKey("CompanyId")]
public virtual Company Company { get; set; }
public int CompanyId { get; set; }
}
然而,当我建立DB我得到以下错误:
表上引进国外KEY约束'FK_Contacts_Company_CompanyId“联系人”可能会导致循环或多重级联路径。指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束。
因此,一个小小的研究表明,答案就是使用Fluent API来根据需要定义映射,但我无法弄清楚如何做到这一点或找到类似场景的示例。
我意识到我可以从Job中删除公司类,并通过联系人进行导航,但我不希望如果可能。
任何帮助感激地接受
有很多流利的API使用的文章 – Eranga 2012-07-15 12:31:56
*因此,一个小小的研究* - 正确的声明将不会被研究,因为简单地将*实体框架“导致周期或多个级联路径”*谷歌将为您提供答案样本(包括[这一个](http://stackoverflow.com/questions/5828394/entity-framework-4-1i-i nverseproperty属性 - 和 - 外键))。那么流利的映射不适合你? – 2012-07-16 09:27:17
不......我看到了那个(还有很多其他的)。正如上面提到的,我正在努力理解如何构建流畅的映射,因为你发布的线程表示。对不起,如果我缺乏理解冒犯你! – ledragon 2012-07-16 15:17:34