>我有一个关于EF Core 2.1的问题
我有一个基类型,我们把它命名为 Customer
,CustomerOld
和CustomerNew
都是从中派生出来的。这些会自动存储在一个表中,到目前为止一切顺利。
现在我有一个用于将Customer
映射到Product
的泛型类型:
public class CustomerToProduct<T> where T : Customer
{
public int CustomerId { get; set; }
public T Customer { get; set; }
public int ProductId { get; set; }
public Product Product { get; set; }
...
}
派生的CustomerToProduct
类型没有特定的属性。我只想使用它们,例如我通过属性访问的客户CustomerToProduct.Customer
是派生类型。
我在DbContext
中为派生类型定义了 DbSets,如下所示,这当然会导致单独的表:
public class MyDbContext : DbContext
{
public DbSet<OldCustomerToProduct> OldCustomerToProducts { get; set; }
public DbSet<NewCustomerToProduct> NewCustomerToProducts { get; set; }
...
}
如何将所有派生的CustomerToProduct<T>
类型存储在同一表中?如何定义DbSets<>
?
是一个很好的映射模式TPH(每个层次结构的类型(的候选日期。您可以在此处阅读有关该主题的更多信息。