我有一个场景,我对首先使用 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; }
}
但是,当我构建数据库时,出现以下错误:
在表 'Contacts' 上引入 FOREIGN KEY 约束 'FK_Contacts_Company_CompanyId' 可能会导致循环或多个级联路径。指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。
因此,一些研究表明答案是使用 Fluent API 根据需要定义映射,但我无法理解如何执行此操作或找到类似场景的示例。
我意识到我可以从 Job 中删除 Company 类并通过 Contact 导航,但如果可能的话,我不希望这样做。
感激地收到任何帮助