Я пытаюсь обойти насмешливую проблему, создав собственный макет IDbSet.
Пользовательский макет:
public class DbSetMock : IDbSet<Tenant>
{
/* hidden all other implemented methods/properties */
public TDerivedEntity Create<TDerivedEntity>() where TDerivedEntity : class, Tenant
{
throw new NotImplementedException();
}
}
Метод create дает ошибку сборки, о которой я не знаю, как решить:
не может указывать как класс ограничений, так и ограничение 'class' или 'struct'
Просто удаление class
из результатов ограничений приводит к другой ошибке сборки (что я также не понимаю:().
Ограничения для параметра типа "TDerivedEntity" метода "Tests.DAL.Tenants.DbSetMock.Create <TDerivedEntity> ()" должны соответствовать ограничениям для параметра типа "TDerivedEntity" метода интерфейса "System.Data.Entity.IDbSet < BusinessLayer.DAL.Tenants.Tenant > .Create <TDerivedEntity> ()". Вместо этого рассмотрите использование явной реализации интерфейса.
Может кто-нибудь помочь мне успешно построить этот класс?