Я использую EntityFramework Core, Code First и Fluent Апи определить базу данных модели, и я следить за конъюнктурой о стратегии наследования карты:Mapping наследования в EntityFramework Ядра
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; }
}
Бизнес логический
В этом случае пользователями, сотрудниками и клиентами являются люди, однако сотрудники и клиенты также являются пользователями, а также работниками может стать клиентом. И каждый тип используется в различных контекстах приложения.
Я реализовал этот способ, чтобы не использовать значения из других контекстов приложения без необходимости.
Вопросы:
Каковы лучшие практики для отображения модели базы данных? Тип-Per-Hyerarchy или Table-Per-Type? Учитывая, что для многих, TPT, как правило, является анти-шаблоном и приводит к существенным проблемам с производительностью позже. согласно EF issues #2266
a. Если TPH, как использовать поле дискриминатора для многих типов?
b. Если TPT, как использовать эту стратегию в EF Core 1.0?
- Является ли это лучшей архитектурой для бизнес-модели?
спасибо за внимание и сотрудничество
Спасибо за ваш ответ Алекс, но я намерен рассмотреть подклассы как уникальное Лицо, когда меняет значения как «информация о контактах» в одной уникальной точке. –