Я пытаюсь создать общий шаблон репозитория, в котором я могу использовать технологии ORM, но я наткнулся на эту проблему при попытке подключиться к контейнеру IOC
public interface IRepository<T>
{
//members
}
Для NHbernate это прекрасно работает
public class FNHRepository<T>: IRepository<T>
{ //members }
Но для Entity я вынужден добавить пункт where
public class EFRepository<T> : IRepository<T> where T : class
{
если я опускаю фразу where, я не могу сделать
dbset = DataContext.Set<T>() ;
говоря, что в качестве T * 1013 можно использовать только ссылочный тип
Проблема возникает, когда я пытаюсь подключить IRepository к IOC, как это
.RegisterType(typeof(IRepository<>), typeof(EFRepository<>));
Я не могу подключить интерфейс, если реализующий класс имеет , где T: class , я получаю следующее исполнение
xception is: InvalidOperationException - Текущий тип, System.Web.Mvc.IControllerFactory, является интерфейсом и не может быть создан. Вам не хватает отображения типов?
Любая помощь оценена, я пробовал это с Unity и Autofac и получал ту же ошибку