Я использую шаблон GenericRepository от https://github.com/huyrua/efprs. Я просто хочу выбрать конструктор с параметром DbContext. Я знаю, что есть дублированный вопрос, но решение от this не решило. Вот моя конфигурация:StructureMap выбрать несколько конструкторов на GenericRepository
ObjectFactory.Initialize(x =>
{
x.Scan(scan =>
{
scan.TheCallingAssembly();
scan.AssemblyContainingType<Data.Entity.TokoContainer>();
scan.WithDefaultConventions();
});
x.For<DbContext>().Use<Data.Entity.TokoContainer>();
x.For<Infrastructure.Data.IRepository>()
.Use<Infrastructure.Data.GenericRepository>()
.Ctor<DbContext>().Is(c => c.GetInstance<DbContext>());
});
эта причина ошибка «StructureMap Код исключения: Там не аргумент типа System.Data.Entity.DbContext для конкретного типа Infrastructure.Data.GenericRepository».
При использовании этого:
x.SelectConstructor<Infrastructure.Data.IRepository>(() => new Infrastructure.Data.GenericRepository((DbContext)null));
x.ForConcreteType<Infrastructure.Data.IRepository>()
.Configure.Ctor<DbContext>().Is(c => c.GetInstance<DbContext>());
Причинение "сбои конфигурации StructureMap: Ошибка 104".
Указание от первого кода, добавив имя параметра "контекст", как это:
x.For<Infrastructure.Data.IRepository>()
.Use<Infrastructure.Data.GenericRepository>()
.Ctor<DbContext>("context").Is(c => c.GetInstance<DbContext>());
вызывает ошибку "Missing просил Instance свойство "connectionStringName" для InstanceKey ххх". Я не знаю, что делать сейчас.
Любое решение будет оценено по достоинству.
«Там не аргумент типа System.Data.Entity.DbContext для конкретного типа Infrastructure.Data.GenericRepository». Это потому, что «GenericRepository» зависит от «ObjectContext». Не 'DbContext'. – Steven
Я использую ту же самую библиотеку и имею такое же исключение. неудивительно – Deeptechtons