Podczas próby implementacji Migracji EF w moim projekcie utknąłem w jednym miejscu.Kod EF Najpierw MigrateDatabaseToLatestVersion akceptuje ciąg znaków Nazwa z konfiguracji
Kod EF Najpierw MigrateDatabaseToLatestVersion akceptuje nazwę ciągu połączenia z config.
W moim przypadku nazwa bazy danych jest znana w środowisku wykonawczym (użytkownik wybiera ją z menu rozwijanego). Tylko droga DbContext albo akceptuje, ConnectionString lub connectionString Nazwa w jego konstruktora „MigrateDatabaseToLatestVersion” nie akceptuje samo
System.Data.Entity.Database.SetInitializer (new MigrateDatabaseToLatestVersion<SrcDbContext, SRC.DomainModel.ORMapping.Migrations.Configuration>(connString));
Czy istnieje inny sposób osiągnięcia tego celu?
możesz przekazać Dynamic ConnectionStringName do kontekstu podczas tworzenia instancji. Przekaż kontekst do inicjatora. Dlaczego trzeba tu przejść? SrcDBConText powinien zostać utworzony za pomocą połączenia podobne. Database.SetInitializer (new MigrateDatabaseToLatestVersion()); powinno wystarczyć –
-Dziękuję. Próbowałem też tego. Tworzy bazę danych o nazwie {0}, która znajduje się w moim pliku konfiguracyjnym. Chcę użyć MigrateDatabaseToLatestVersion, a nie zwykłego starego inicjalizatora, w którym będę musiał utrzymywać dwie kopie inicjalizacji (jedna do migracji, druga do nowego tworzenia DB). Tworzę wyjątkowe ograniczenia w migracji. –
DbContext można przekazać ciąg połączenia lub nazwę połączenia. Robię dokładnie to samo, co planujesz zrobić. Kontekst 1 używał ponownie wielu baz danych do migracji. Następnie wiele kontekstów Bounded z initializer = null uzyskuje dostęp do DB. Nie wiem, dlaczego to nie działa, przepraszam. –