Gram w Entity Framework 4, używając podejścia opartego na modelu do generowania skryptu bazy danych z moich encji. To jest świetne, ale nie jestem pewien, jak to działa, jeśli chodzi o wersjonowanie bazy danych. Zgaduję, że jeśli chciałbym użyć aktywnej struktury migracji rekordów, musiałbym pracować na odwrót i generować moje jednostki z mojej bazy danych? Czy istnieje sposób na prawidłowe zastosowanie podejścia opartego na modelu i odpowiednią wersję bazy danych?Migracja baz danych dla Entity Framework 4
Odpowiedz
ten zostanie wkrótce jako pakiet Nuget zwane EntityFramework.Migrations
Demo zostało przeprowadzone przez Scott Hanselman na TechEd 2011 (dostępna online pod http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/DEV349). Odpowiednia sekcja jest 45 minut w
W skrócie, po zainstalowaniu pakietu, można wprowadzić następujące wartości w konsoli Menedżer pakietów wygenerować skrypt zmian w bazie.
migrate -script
UPDATE (13 -Nov-2011)
Kompilacja alfa 3 tego pakietu jest już dostępna na NuGet. Zamiast używać wymienionego powyżej polecenia cmdlet migrate -script
, używa on polecenia cmdlet Add-Migration <migrationname>
. A walk-through of its use można znaleźć na blogu zespołu ADO.NET.
UPDATE (14-lut-2012)
Funkcjonalność ta jest obecnie dostępna jako część głównego EntityFramework NuGet package, począwszy od wersji 4.3. An updated walk-through przy użyciu EF 4.3 można znaleźć na blogu zespołu ADO.NET.
+1 za aktualizację – Karsten
Cóż, jeśli chcesz pracować jak ActiveRecord, musisz pracować jak ActiveRecord. :)
Jeśli jednak chcesz korzystać z migracji modelu, ale nadal korzystać z migracji, będzie to możliwe, ale będzie wymagać dodatkowej pracy w Twoim imieniu. Model-pierwszy wygeneruje skrypt zmiany bazy danych. Będziesz musiał wyodrębnić odpowiednie części do migracji, a także ręcznie pisać skasowane skrypty. Chociaż wiąże się to z pracą fizyczną, nie wydaje mi się to aż tak trudne.
ScottGu wspomina coś o tym w blog entry:
Jesteśmy również będzie wspieranie „migracje” cecha EF w przyszłości, która pozwoli na zautomatyzowanie/migracje skrypt schematu bazy danych programowo.
[EDIT]
myślę, że może być odniesienie do Entity Designer Database Generation Power Pack, jak odpowiedzieć Morteza Manavi w another SO answer.
Pracuję nad alternatywą dla biblioteki EF.Migrations - EntityFramework.SchemaCompare. Pozwala fizycznie porównać schemat bazy danych z modelem encji reprezentującym kontekst bazy danych (EF.Migrations tego nie robi). Można go uruchomić podczas inicjalizacji bazy danych lub ręcznie na żądanie.Rozważmy następujący przykład
#if DEBUG
Database.SetInitializer(new CheckCompatibilityWithModel<DatabaseContext>());
#endif
Będzie wyjątek podczas inicjalizacji bazy danych opisujących różnice między schematu db i modelu, jeżeli występują problemy z kompatybilnością. Alternatywnie można znaleźć te różnice w dowolnym momencie w kodzie ten sposób
using (var ctx = new DatabaseContext())
{
var issues = ctx.Database.FindCompatibilityIssues();
}
następnie o tych różnic/problemy z niekompatybilnością na rękach można albo zaktualizować schemat dB lub modelu.
To podejście jest szczególnie przydatne, gdy potrzebna jest pełna kontrola nad schematem bazy danych i projektowaniem modelu i/lub praca w zespole, w którym wielu członków zespołu pracuje na tym samym schemacie i modelu bazy danych. Może być również używany jako dodatek do plików EF.Migrations.
Widelec mnie na GitHub: https://github.com/kriasoft/data
- 1. DB-In DB dla Entity Framework 4
- 2. Entity Framework 4 Repository?
- 3. SqlMetal alternatywa dla Entity Framework 4
- 4. Entity Code Framework Pierwsza migracja Błąd
- 5. Rescaffold migracja w Entity Framework Rdzenia
- 6. Migracja wbudowanych modeli do baz danych
- 7. Entity Framework 4 - zapobiec podstawowe buforowanie
- 8. Entity Framework odświeżania danych
- 9. Entity Framework 4 uzyskiwanie klucza podstawowego ID dla wstawionego rekordu
- 10. Entity Framework 4 POCO ze Słownika
- 11. Entity Framework 4 Funkcja Import nie działa
- 12. Moduł Entity Core Update - migracja specyficzna dla bazy danych
- 13. Klonowanie danych w Entity Framework
- 14. Entity Framework 4 - Uzyskaj wygenerowany SQL dla aktualizacji/wkładek
- 15. Entity Framework bez bazy danych
- 16. Entity Framework 4 Visual Studio 2008
- 17. Entity Framework 4 Ładowanie wyjątku odniesienia
- 18. MVC i Entity Framework 4. Tabela Dołącz
- 19. Entity Framework 4: Jak znaleźć klucz podstawowy?
- 20. Entity Framework 4 wyszukaj na połączonych polach
- 21. Entity Framework 6 Darmowy dostawca danych Oracle
- 22. Jak zarejestrować dostawcę danych Firebird dla Entity Framework?
- 23. Entity Framework UnintentionalCodeFirstException
- 24. Entity Framework 4.3 nie tworzy bazy danych
- 25. Entity Framework 4.1 Pobieranie danych samoreferencyjnych
- 26. Entity Framework do wielu baz danych (ten sam schemat) w czasie wykonywania?
- 27. Wiele baz danych w Play Framework 2.1.x
- 28. Cascade Usuń, ta sama tabela, Entity Framework 4 Code First
- 29. Entity Framework Wstawianie danych początkowych podczas przebudowy
- 30. WCF, Entity Framework i danych Kontrakty
Microsoft jest obecnie aktywnie działa na tej funkcji dla Entity Framework, można o tym przeczytać na blogu zespołu ADO.NET jako słupkami kod najpierw migracje. http://blogs.msdn.com/b/adonet/ –