Я пытаюсь передать connectionString в конструктор фабрики контекста, но получаю сообщение об ошибке «Тип конструктора ContextImplementationTest not found» В чем проблема?Я звоню
string bid="someCOnnectionString";
using (BaseContext<DbContext> db = MediaDbContext.GetBidContext(bid)){...}
public static class MediaDbContext
{
public static BaseContext<DbContext> GetBidContext(string connString)
{
//Settings.ContextFactory="ContextImplementationTest"
Type contextFactoryType = Type.GetType("Media.DB.Context.Implementation." + Settings.ContextFactory);
object[] args = new object[] { connString};
BaseContext<DbContext> instance = (BaseContext<DbContext>)Activator.CreateInstance(contextFactoryType, args);
return instance;
}
}
Базовый класс
public class BaseContext<TContext> : DbContext where TContext : DbContext
{
static BaseContext()
{
Database.SetInitializer<TContext>(null);
}
protected BaseContext(string connectionString) : base(connectionString)
{
}...
Дочерний класс
public class ContextImplementationTest : BaseContext<DbContext>
{
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{...}
Обновление: довызовите конструктор в дочернем классе, у вас должен быть конструктор в этом классе.
Детский класс
public class ContextImplementationTest : BaseContext<DbContext>
{
protected ContextImplementationTest(string connectionString) : base(connectionString)
{
}...