クラス/オブジェクトの再利用を簡素化するために、それができるかどうか疑問に思っています。
public class InvoiceTbl
{
public Guid InvoiceId {get; set;}
...
}
public class InvoiceLineTbl
{
public Guid InvoiceId {get; set;}
public Guid InvoiceLineId {get; set;}
...
}
public class InvoiceBaseContext: DbContext
{
DbSet<InvoiceTbl> Invoices {get; set;}
DbSet<InvoiceLineTbl> InvoiceLines {get; set;}
}
public Invoice : InvoiceTbl
{
public virtual ICollection<InvoiceLine> Lines {get; set;}
}
public InvoiceLine: InvoiceLineTbl
{
public Invoice Header {get; set;}
}
public InvoiceContext : DbContext
{
public DbSet<Invoice> Invoices {get; set;}
public DbSet<InvoiceLine> InvoiceLines {get; set;}
}
ここでの私の主な目的は、追加のナビゲーションプロパティを持つクラスを再利用することです。これにより、モデルに必要なすべてのオブジェクトを含む小さなモデルを簡単に操作できます。
これを実装してみましたが、ほとんどが継承と解釈され、Discriminator列などを探し始めたので、あまり回避しなくても可能かと思います。