gpt4 book ai didi

c# - TPC 继承错误

转载 作者:太空狗 更新时间:2023-10-29 21:27:15 26 4
gpt4 key购买 nike

我在使用 C# Entity Framework Codefirst 和 Fluent Api 的 TPC 继承方面遇到了一个奇怪的问题。我有 3 个名为 Person 的类, InvoicePeriodicInvoice正如您在下面看到的。以下是我的代码摘要:

Invoice类及其配置类:

public class Invoice : InvoiceBase
{
public Person User { get; set; }
}

public class InvoiceConfig : EntityTypeConfiguration<Invoice>
{
public InvoiceConfig()
{
this.Map(m => { m.MapInheritedProperties(); m.ToTable("Invoices"); });
}
}

PeriodicInvoice类及其配置:

public class PeriodicInvoice : InvoiceBase
{
// Some extra properties.
}

public class PeriodicInvoiceConfig : EntityTypeConfiguration<PeriodicInvoice>
{
public PeriodicInvoiceConfig()
{
this.Property(x => x.SuspendOnExpire).IsRequired();
this.Map(m => { m.MapInheritedProperties(); m.toTable("PeriodicInvoices"); });
}
}

当我运行代码时,出现这个错误:

The association 'Invoice_User' between entity types 'Invoice' and 'Person' is invalid. In a TPC hierarchy independent associations are only allowed on the most derived types.

我知道这意味着我应该包含属性 User上课 PeriodicInvoice并且不要在类里面使用它 Invoice .

可是,难道就没有别的方法可以解决这个问题吗?谢谢。

最佳答案

在 TPC 继承中,父类中不能有指向另一个表的字段,因为您试图将两个表指向另一个表,而另一个表试图仅使用一个外键指向这两个表之一(这是不可能的!)。

我建议您使用 TPT。 This link可以帮助你。

关于c# - TPC 继承错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31315158/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com