[英]Foreign Key creation in EF Core code first
我有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怎么了?
EF無法理解兩個實體之間的關系,因此您可能需要在“ OnModelCreating”方法中使用流利的API進行澄清。
使用類似
modelBuilder.Entity<ClassB>().HasRequired(x => x.ClassA).WithOptional(x => x.ClassB);
其中ClassA和ClassB是我的實體,它們之間具有1到0或1的關系。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.