0
亲爱的实体专家和其他人,实体框架数据库模型
我有以下实体,
基类个人:
public abstract class Individual
{
[Key]
public int IndividualID { get; set; }
... other properties
}
瑜珈:
[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; }
所以上面创建一个表VAT那里VATID为2开始与这应该是1相反,我不明白为什么会发生这种情况,这应该是1不是吗?此外,在任何引用客户&增值税的表格中的任何地方都没有任何参考,我如何创建一个单独的表VAT_Customer,您有VATID &客户ID?
这是我如何创建并插入实体客户:
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方式制得具有对实体之间的任何实体或关系的单独看法。我做错了什么,我将如何达到预期的效果?让我知道我是否可以澄清任何事情。提前感谢您的任何帮助或建议!
亲切的问候!
你也不必在还原类(客户),,你可以从客户访问它直接 –
如果您的客户比1Vat更多,,添加到您的客户类: public virtual List VATS {get;组; } –
客户只能拥有1个增值税nr,所以它就像您说的1个1一样1.我做了以下操作:**将客户从增值税等级中删除:** - 使用增值税1而不是2(伟大!) - 在Customer表中增加一个列名称VAT_VATID(GREAT!) [ForeignKey(“VAT”)] public virtual int VATID {get;组; } 公共虚拟增值税VAT {get;组; } 这给了我一个客户表中的VATID列,直到现在,这是我见过的最好的结果。有没有办法将它们分开映射到一个表格,比如CUSTOMER_VAT,那里有VATID和CUSTOMERID? –