У меня есть модель, которая выглядит так:
public interface IEntity
{
int Id { get; set; }
}
Тогда идея состоит в том, чтобы мои объекты наследовали от этого интерфейса:
public class User : IEntity
{
public int Id { get; set; }
}
Однако одна из моих сущностей фактически имеет идентификатор Guid в качестве идентификатора.
public class UserSession
{
public Guid Id { get; set; }
}
Мне бы очень хотелось, чтобы все мои объекты наследовали от одного и того же интерфейса, но это заставило бы меня добавить столбец идентификаторов на основе целых чисел в UserSession, что не нужно, поскольку Guid - это идентификатор, но при этом модель домена будет хорошей, поскольку все объекты будет наследовать от той же базы.
Какие варианты у меня есть в этом сценарии? Могу ли я иметь два базовых интерфейса, один для int и один для Guid? Должен ли я добавить столбец идентификации в сущность UserSession, хотя это не нужно? Мне нужен Guid, поэтому я не могу просто избавиться от него и заменить его на целое число.
Есть мысли о лучших практиках?