У меня есть этот класс, он является частью моего шаблона спецификации. Перейдя по этой ссылке а>
public class SpecificationEvaluator<TEntity>
where TEntity : BaseEntity
а BaseEntity состоит только из идентификатора
ex.
public class BaseEntity
{
public int Id { get; set; }
}
и это отлично работает для всех моих сущностей, которые наследуют «BaseEntity»
ex.
Product : BaseEntity
Invoice : BaseEntity
Message : BaseEntity
теперь я хочу использовать шаблон спецификации для своего объекта «Пользователь», чтобы я мог предоставлять спецификации/условия и получать списки пользователей.
Но моя проблема в том, что объект «Пользователь» моих проектов не наследует «BaseEntity», он наследует «IdentityUser».
ex.
public class User : IdentityUser<int>
{
}
Я знаю, что у меня не может быть несколько классов в качестве ограничений, но я могу иметь несколько интерфейсов.
Я знаю, что могу установить ограничение только на «класс».
ex.
public class SpecificationEvaluator<TEntity>
where TEntity : class
{
}
но разве это не противоречит цели создания конкретных ограничений?
ВОПРОС. Есть ли другое решение, которое я могу реализовать, чтобы иметь ограничения «BaseEntity» и «User»?