Wygląda na to, że CodeFirst przestaje odrabiać zadanie domowe, kiedy nie ma pełnej kontroli nad bazą danych (przypuszczam). Scenariusz to strona internetowa hostowana na Arvixe.com (lub przypuszczam, że jakikolwiek inny współużytkowany serwer hostingowy), gdzie muszę tworzyć bazy danych tylko z ich panelu sterowania (a NIE z Sql Server Management Studio, żeby powiedzieć ...) . Po utworzeniu pustej bazy danych, zarejestrować połączenie na stronie internetowej, i używam go do generowania bazy danych z obiektami POCO jak w:Dodatek migracja nie działa z zdalnymi bazami danych serwera sql w hostingu współdzielonym.
dodatek migracja m1 -targetdatabase myConnection
Generuje to właściwie moja pierwsza migracja , które mogą ubiegać się bez problemów z
update-baza -targetdatabase MyConnection
pierwszy obaw, nie jest zbyt ważne, jest to, że ponieważ jest istniejąca baza danych, to nie wyda polecenia Seed, więc muszę wstaw moje pierwsze rekordy ręcznie, ale to jest nie jest to wielki problem.
Następnie zmienić moje poco obiektów i muszę zaktualizować bazę danych, ale kiedy wydać INNY
dodatek migracja m2 -targetdatabase MyConnection
daje błąd:
System. Data.Entity.Migrations.MigrationsPendingException: Nie można wygenerować jawnej migracji, ponieważ oczekuje się następujących jawnych migracji: [201111081426466_m1]. Zastosuj oczekujące jawne migracje przed próbą wygenerowania nowej jawnej migracji.
To jest naprawdę dziwne, ponieważ jeśli patrzę na bazie danych, widzę nawet __MigrationHistory stołowego, ale wygląda na to, że nie może go rozpoznać ...
Każdy z tym samym problemem, lub jakiś dobry napiwek do zbadania? Z góry dziękuję, Andrea Bioli
OK, właśnie w minutę po wysłaniu, zdałem sobie sprawę, że tabela __MigrationHistory NIE jest tworzona jako tabela systemowa ... więc oczywiste jest, że po raz drugi, nie może jej znaleźć ... więc problem wygląda jak być prawem do napisania tabeli we właściwym miejscu ... – Andrea