【发布时间】:2016-10-20 12:26:31
【问题描述】:
我正在使用 EntityFramework Core、Code First 和 Fluent Api 来定义模型数据库,并且我已经关注了地图继承策略的情况:
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
}
public class User : Person
{
public string UserName { get; set; }
public string Password { get; set; }
}
public class Employee : Person
{
public decimal Salary { get; set; }
}
public class Customer:Person
{
public long DiscountPoints { get; set; }
}
业务逻辑
在这种情况下,用户、员工和客户都是人,但员工和客户也是用户,员工可以成为客户。每种类型都用于不同的应用上下文。
我实现这种方式是为了避免不必要地使用来自其他应用程序上下文的值。
问题:
-
映射数据库模型的最佳实践是什么?按层次结构类型或按类型表?考虑到对许多人来说,TPT 通常是一种反模式,并且会在以后导致严重的性能问题。 EF issues #2266
一个。如果是TPH,如何对多种类型使用discriminator field?
b.如果是 TPT,在 EF Core 1.0 中如何使用这个策略?
- 它是业务模型的最佳架构吗?
感谢您的关注和合作
【问题讨论】:
标签: entity-framework design-patterns orm entity-framework-core ef-fluent-api