簡體   English   中英

首先在EF Core代碼中創建外鍵

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM