В настоящее время я создал тип базового объекта, из которого будут получены все мои объекты.
public abstract class BaseEntity
{
/// <summary>
/// Key Field for all entities
/// </summary>
///
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Id { get; set; }
/// <summary>
/// Date entity was created
/// </summary>
public DateTime DateCreated { get; set; }
/// <summary>
/// Last date Modified
/// </summary>
public DateTime DateModified { get; set; }
/// <summary>
/// keep track of Row Version used for concurrency
/// </summary>
[Timestamp]
public Byte[] RowVersion { get; set; }
}
}
Я думаю о том, чтобы отделить мою модель от структуры сущности, чтобы она не зависела от нее. Я хотел бы иметь еще один проект для моей реализации EF. Итак, я хотел бы включить в этот проект отображения, которые будут определять отношения в моей модели.
Поскольку мой класс BaseEntity является абстрактным классом, для меня это лучший способ сохранить атрибуты [Key, DatabaseGenerated (DatabaseGeneratedOption.Identity)] и [TimeStamp], чтобы он применялся ко всем моим производным сущностям с использованием свободного API и отдельный файл сопоставления? Я не думаю, что смогу настроить модельер для добавления отображения BaseEntity, потому что это абстрактный класс. Должен ли я создать интерфейс со всеми моими базовыми функциями и повторить сопоставления для всех моих сущностей?
Я использую класс EntityTypeConfiguration и создаю отдельные классы сопоставления для всех моих сущностей.