Czy istnieje sposób, w jaki zastrzyk zależności można skonfigurować/załadować podczas używania poleceń migracji Entity Framework?Jak skonfigurować DbContext podczas tworzenia migracji w Entity Framework Core?
Entity Framework Core obsługuje wtrysk zależności dla podklas DbContext
. Mechanizm ten obejmuje umożliwienie konfiguracji dostępu do danych poza numerem DbContext
.
Na przykład, następujący by skonfigurować EF utrzymują się do serwera SQL przy użyciu ciąg połączenia pobierane z config.json
ServiceCollection services = ...
var configuration = new Configuration().AddJsonFile("config.json");
services.AddEntityFramework(configuration)
.AddSqlServer()
.AddDbContext<BillingDbContext>(config => config.UseSqlServer());
Jednakże, polecenia migracje nie wiem, aby wykonać ten kod tak Add-Migration
zawiedzie z powodu braku dostawcy lub brak ciągu połączenia.
Migracja może być wykonana poprzez przesłonięcie OnConfiguring
w podklasie DbContext
w celu określenia dostawcy i łańcucha konfiguracji, ale to przeszkadza, gdy inna konfiguracja jest pożądana gdzie indziej. Ostatecznie utrzymanie moich poleceń migracyjnych i mojego kodu staje się niepożądanie skomplikowane.
Uwaga: Moje DbContext
mieszka w innym zespole niż punkt wejścia, który go używa, a moje rozwiązanie ma wiele projektów rozruchowych.
Wyobrażenie tego jest częścią problemu [# 639] (https://github.com/aspnet/EntityFramework/issues/639). W ASP.NET 5 nazwiemy 'Startup.ConfigureServices()'. Czy twoim zdaniem byłoby dobrze zastosować tę samą konwencję dla projektów spoza programu. – bricelam
@bricelam Teraz, gdy zrobiłem trochę rozwoju w ASP.NET 5 (korzystałem z EF7 w tradycyjnej aplikacji .NET), mogę powiedzieć, że standaryzacja wokół klasy "Startup" brzmi dla mnie dobrze. – vossad01
Pchnąłem to w [aspnet/Hosting # 286] (https://github.com/aspnet/Hosting/issues/286), ale zaginąłem. Decyzja dotyczyła różnych ładowarek DbContext dla różnych typów aplikacji. Zobacz [aspnet/EntityFramework # 2357] (https://github.com/aspnet/EntityFramework/issues/2357). – bricelam