Я проектирую систему аудита в EntityFrameworkCore и хочу повторно использовать мои классы сущностей в моих классах сущностей аудита, чтобы уменьшить дублирование кода.
User
сущность
public class User
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
Универсальная Audit
сущность:
public class Audit<T>
{
public int AuditId { get; set; }
public string UpdateType { get; set; }
public DateTimeOffset UpdatedAt { get; set; }
public string UpdatedBy { get; set; }
public T Snapshot { get; set; }
}
Использование аудита будет DbSet<Audit<User>>
Цель состоит в том, чтобы в итоге получить такую структуру таблицы:
Пользователи
Id INT,
FirstName VARCHAR,
LastName VARCHAR
UserAudits
AuditId INT,
AuditUpdateType VARCHAR,
UpdatedAt DATETIMEOFFSET,
UpdatedBy VARCHAR,
Id INT,
FirstName VARCHAR,
LastName VARCHAR
Возможно ли это еще в Entity Framework Core? Когда я создаю свою миграцию, она продолжает пытаться связать таблицу UserAudits и таблицу Users вместе с внешним ключом (предположительно, потому что я использую одну и ту же сущность User). Или есть альтернатива?