【发布时间】:2017-11-10 22:58:33
【问题描述】:
我有 2 个模型:
public class GaOrgOrders
{
public virtual Guid Id { get; set; }
[ForeignKey("GaOrganizations")]
public virtual Guid OrgId { get; set; }
[ForeignKey("GaApps")]
public virtual Guid AppId { get; set; }
[ForeignKey("GaOrgUserOrganizations")]
public virtual Guid OrgUserId { get; set; }
[ForeignKey("GaServicesTariffs")]
public virtual Guid ServiceTariffId { get; set; }
public virtual bool IsTemporary { get; set; }
public virtual Apps GaApps { get; set; }
public virtual Organizations GaOrganizations { get; set; }
public virtual OrgUserOrganizations GaOrgUserOrganizations { get; set; }
public virtual GaServicesTariffs GaServicesTariffs { get; set; }
}
和
public class GaOrganizations
{
public virtual Guid Id { get; set; }
public virtual string Name { get; set; }
public virtual bool IsDeleted { get; set; }
}
当我尝试更新数据库并添加这些表时,出现错误:
在表“GaOrgOrders”上引入 FOREIGN KEY 约束“FK_GaOrgOrders_GaOrganizations_OrgId”可能会导致循环或多个级联路径。指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。无法创建约束或索引。查看以前的错误。
如果我从 OrgId 属性中删除“ForeignKey”属性 - 错误会消失,但它会在数据库中创建第二个字段 (GaOrganizationsId) 并使其成为 FK。其他键工作正常。 OrgId 有什么问题?
【问题讨论】:
-
您的导航定位到类型组织,而您的类被命名为 GaOrganizations。此外,问题是关于多个级联路径或循环,但在您共享的代码中,两个类之间没有多重关系。请分享一个代码清单,它可以代表您看到的问题
标签: c# entity-framework entity-framework-core