亲爱的实体专家和其他人,
我有以下实体,
基类个人:
public abstract class Individual
{
[Key]
public int IndividualID { get; set; }
... other properties
}
Yogi:
[Table("Yogis")]
public class Yogi : Individual
{
public string Firstname { get; set; }
public string Lastname { get; set; }
public DateTime Birthdate { get; set; }
}
客户:
[Table("Customers")]
public class Customer : Individual
{
public string Name { get; set; }
[ForeignKey("VATID")] // tried with and without
public virtual VAT VAT { get; set; }
}
VAT:
public class VAT
{
[Key]
public int VATID { get; set; }
[Required]
public virtual Customer VATHolder { get; set; }
... other properties
}
DbContext:
public DbSet<Individual> Individuals { get; set; }
public DbSet<VAT> VATS { get; set; }
所以上面创建了一个表格增值税,其中VATID是2开始时应该是1,我不明白为什么会发生这种情况,这应该是1不是吗?此外,任何参考客户和表格的表格中都没有参考。增值税,我如何创建一个单独的表VAT_Customer,你有VATID&amp;客户ID?
这是我创建和插入实体Customer的方式:
VAT vat = new VAT("123456789");
DataBaseHandler.InsertIndividual(new Customer("Customer name", vat,...));
插入功能
public static void InsertIndividual(Individual individual)
{
using (MyDbContext ctx = new MyDbContext())
{
ctx.Individuals.Add(individual);
ctx.SaveChanges();
}
}
我尝试了几种方式(EXAMPLES HERE),但我更喜欢TPT方式,可以单独查看任何实体或实体之间的关系。我做错了什么,我将如何取得理想的结果?如果我能澄清任何事情,请告诉我。提前感谢您的任何帮助或建议!
亲切的问候!
答案 0 :(得分:1)
如果你想要1:1的关系:
,你的ForeignKey展示位置应该是这样的enter code here
[ForeignKey("VAT")]
public virtual int VATId { get; set; }
public virtual VAT VAT { get; set; }
ForeignKey中的名称与您的类相同。
希望这可以提供帮助