Я получаю эту ошибку, когда пытаюсь использовать первые миграции кода.
В моем контексте есть конструктор с именем соединения.
public class VeraContext : DbContext, IDbContext
{
public VeraContext(string NameOrConnectionStringName = "VeraDB")
: base(NameOrConnectionStringName)
{
}
public IDbSet<User> Users { get; set; }
public IDbSet<Product> Products { get; set; }
public IDbSet<IntCat> IntCats { get; set; }
}
Это имя соединения вводится с помощью ninject при запуске проекта, я также указал его как значение по умолчанию, как в приведенном выше коде, но это не помогло.
kernel.Bind<IDbContext>()
.To<VeraContext>()
.WithConstructorArgument("NameOrConnectionStringName", "VeraDB");
Когда я пытаюсь добавить миграции с помощью "Enable-Migrations", это вызывает ошибку:
Целевой контекст "VeraData.EF.Infrastructure.VeraContext" не является конструктивны. Добавить конструктор по умолчанию или предоставить реализацию IDbContextFactory.
Если я удалю конструктор из VeraContext
, он будет работать, но в качестве его имени будет создана другая база данных с VeraData.EF.Infrastructure.VeraContext
.
Я предполагаю, что ninject
передает только строку соединения при запуске проекта, а не когда я использую первые миграции кода. Во всяком случае, я могу ввести/предоставить значение по умолчанию для имени соединения при первом переходе кода?