Кажется, я получаю это сообщение об ошибке при использовании Entity Framework 7 и MVC6
System.InvalidOperationException Не настроены поставщики баз данных. Настройте поставщика базы данных, переопределив OnConfiguring в своем DbContext или в методе AddDbContext при настройке услуги.
Я считаю, что сделал все, что я должен делать, поэтому, возможно, это ошибка. Я использую версию 7.0.0-бета7 Entity Framework.
Я установил свой DbContext, интерфейс, чтобы я мог издеваться над DbContext (был необходим в EntityFramework 6 для модульного тестирования). Мои службы принимают интерфейс как конструктор, и у меня есть установка DI в MVC 6.
В моем файле Startup.cs у меня есть
public void ConfigureServices(IServiceCollection services)
{
// entity framework
services.AddEntityFramework()
.AddSqlServer()
.AddDbContext<MyDbContext>(options =>
options.UseSqlServer(Configuration["Data:MyConnection:ConnectionString"])
);
// Add MVC services to the services container.
services.AddMvc();
// new context on each request
services.AddScoped<IMyDbContext, MyDbContext>();
}
Я проверил connectionString и вернул действительное соединение. Я также проверил в своей службе, что объект вводится, и он не является нулевым, поэтому все должно работать.
Мой файл config.json выглядит следующим образом
{
"Data": {
"MyConnection": {
"ConnectionString": "Server=(local);Database=XXXX;Trusted_Connection=True;"
}
}
}
My DbContext не переопределяет метод OnConfiguring, потому что я считаю, что это не нужно, поскольку я делаю все это, как указано выше? Я прав? Что мне не хватает? Посмотрев на множество разных сайтов, я думаю, что некоторые используют старый код, потому что некоторые методы не существуют, а другие веб-сайты имеют то же самое, что и у меня.