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? –