Zagadnienia dotyczące migracji (Entity Framework)

ADO.NET Entity Framework zapewnia kilka korzyści dla istniejącej aplikacji. Jedną z najważniejszych z tych korzyści jest możliwość używania modelu koncepcyjnego do oddzielania struktur danych używanych przez aplikację ze schematu w źródle danych. Dzięki temu można łatwo wprowadzać przyszłe zmiany w modelu magazynu lub w samym źródle danych bez wprowadzania zmian wyrównywujących w aplikacji. Aby uzyskać więcej informacji na temat zalet korzystania z platformy Entity Framework, zobacz Entity Framework Overview and Entity Data Model (Omówienie platformy Entity Framework i model danych jednostek).

Aby skorzystać z zalet programu Entity Framework, możesz migrować istniejącą aplikację do platformy Entity Framework. Niektóre zadania są wspólne dla wszystkich migrowanych aplikacji. Te typowe zadania obejmują uaktualnianie aplikacji do korzystania z programu .NET Framework, począwszy od wersji 3.5 z dodatkiem Service Pack 1 (SP1), definiowania modeli i mapowania oraz konfigurowania programu Entity Framework. Podczas migracji aplikacji do programu Entity Framework istnieją dodatkowe zagadnienia, które mają zastosowanie. Te zagadnienia zależą od typu migrowanej aplikacji i od określonej funkcjonalności aplikacji. Ten temat zawiera informacje ułatwiające wybór najlepszego podejścia do użycia podczas uaktualniania istniejącej aplikacji.

Zagadnienia dotyczące migracji ogólnej

Podczas migracji dowolnej aplikacji do programu Entity Framework należy wziąć pod uwagę następujące kwestie:

  • Każda aplikacja korzystająca z programu .NET Framework, począwszy od wersji 3.5 z dodatkiem SP1, może zostać zmigrowana do programu Entity Framework, o ile dostawca danych dla źródła danych używanego przez aplikację obsługuje platformę Entity Framework.

  • Platforma Entity Framework może nie obsługiwać wszystkich funkcji dostawcy źródła danych, nawet jeśli ten dostawca obsługuje platformę Entity Framework.

  • W przypadku dużej lub złożonej aplikacji nie trzeba migrować całej aplikacji do programu Entity Framework jednocześnie. Jednak każda część aplikacji, która nie korzysta z programu Entity Framework, musi być nadal zmieniana po zmianie źródła danych.

  • Połączenie dostawcy danych używane przez program Entity Framework może być współużytkowane z innymi częściami aplikacji, ponieważ program Entity Framework używa ADO.NET dostawców danych w celu uzyskania dostępu do źródła danych. Na przykład dostawca SqlClient jest używany przez program Entity Framework do uzyskiwania dostępu do bazy danych programu SQL Server. Aby uzyskać więcej informacji, zobacz EntityClient Provider for the Entity Framework (Dostawca EntityClient dla programu Entity Framework).

Typowe zadania migracji

Ścieżka migracji istniejącej aplikacji do platformy Entity Framework zależy zarówno od typu aplikacji, jak i od istniejącej strategii dostępu do danych. Jednak podczas migracji istniejącej aplikacji do programu Entity Framework należy zawsze wykonywać następujące zadania.

Uwaga

Wszystkie te zadania są wykonywane automatycznie podczas korzystania z narzędzi modelu danych jednostki, począwszy od programu Visual Studio 2008. Aby uzyskać więcej informacji, zobacz How to: Use the Entity Data Model Wizard (Instrukcje: korzystanie z Kreatora modelu danych jednostki).

  1. Uaktualnij aplikację.

    Projekt utworzony przy użyciu starszej wersji programu Visual Studio i programu .NET Framework musi zostać uaktualniony do korzystania z programu Visual Studio 2008 z dodatkiem SP1 i programu .NET Framework, począwszy od wersji 3.5 z dodatkiem SP1.

  2. Zdefiniuj modele i mapowanie.

    Pliki modelu i mapowania definiują jednostki w modelu koncepcyjnym; struktury w źródle danych, takie jak tabele, procedury składowane i widoki; oraz mapowanie między jednostkami a strukturami źródła danych. Aby uzyskać więcej informacji, zobacz Instrukcje: Ręczne definiowanie modelu i plików mapowania.

    Typy zdefiniowane w modelu magazynu muszą być zgodne z nazwą obiektów w źródle danych. Jeśli istniejąca aplikacja uwidacznia dane jako obiekty, należy upewnić się, że jednostki i właściwości zdefiniowane w modelu koncepcyjnym są zgodne z nazwami tych istniejących klas danych i właściwości. Aby uzyskać więcej informacji, zobacz How to: Customize Modeling and Mapping Files to Work with Custom Objects (Jak dostosować pliki modelowania i mapowania do pracy z obiektami niestandardowymi).

    Uwaga

    Model danych jednostki Projektant może służyć do zmieniania nazw jednostek w modelu koncepcyjnym w celu dopasowania do istniejących obiektów. Aby uzyskać więcej informacji, zobacz Entity Data Model Projektant.

  3. Zdefiniuj parametry połączenia.

    Program Entity Framework używa specjalnie sformatowanego parametry połączenia podczas wykonywania zapytań względem modelu koncepcyjnego. Ta parametry połączenia hermetyzuje informacje o plikach modelu i mapowaniu oraz połączeniu ze źródłem danych. Aby uzyskać więcej informacji, zobacz How to: Define the Połączenie ion String (Jak zdefiniować ciąg Połączenie ion).

  4. Skonfiguruj projekt programu Visual Studio.

    Odwołania do zestawów programu Entity Framework oraz pliki modelu i mapowania muszą zostać dodane do projektu programu Visual Studio. Te pliki mapowania można dodać do projektu, aby upewnić się, że są one wdrażane z aplikacją w lokalizacji wskazanej w parametry połączenia. Aby uzyskać więcej informacji, zobacz How to: Manually Configure an Entity Framework Project (Instrukcje: Ręczne konfigurowanie projektu programu Entity Framework).

Zagadnienia dotyczące aplikacji z istniejącymi obiektami

Począwszy od platformy .NET Framework 4, platforma Entity Framework obsługuje "zwykłe stare" obiekty CLR (POCO), nazywane również obiektami nieumyślnymi trwałości. W większości przypadków istniejące obiekty mogą współpracować z programem Entity Framework, wprowadzając drobne zmiany. Aby uzyskać więcej informacji, zobacz Praca z jednostkami POCO. Aplikację można również migrować do programu Entity Framework i używać klas danych generowanych przez narzędzia Platformy Entity Framework. Aby uzyskać więcej informacji, zobacz How to: Use the Entity Data Model Wizard (Instrukcje: korzystanie z Kreatora modelu danych jednostki).

Zagadnienia dotyczące aplikacji korzystających z dostawców ADO.NET

ADO.NET dostawcy, tacy jak SqlClient, umożliwiają wykonywanie zapytań względem źródła danych w celu zwrócenia danych tabelarycznych. Dane można również załadować do zestawu danych ADO.NET. Poniższa lista zawiera opis zagadnień dotyczących uaktualniania aplikacji korzystającej z istniejącego dostawcy ADO.NET:

  • Wyświetlanie danych tabelarycznych przy użyciu czytnika danych.

    Możesz rozważyć wykonanie zapytania Entity SQL przy użyciu dostawcy EntityClient i wyliczenie za pośrednictwem zwróconego EntityDataReader obiektu. Zrób to tylko wtedy, gdy aplikacja wyświetla dane tabelaryczne przy użyciu czytnika danych i nie wymaga obiektów udostępnianych przez program Entity Framework do materializowania danych w obiektach, śledzenia zmian i wprowadzania aktualizacji. Możesz nadal używać istniejącego kodu dostępu do danych, który wprowadza aktualizacje do źródła danych, ale możesz użyć istniejącego połączenia dostępnego StoreConnectionEntityConnectionz właściwości . Aby uzyskać więcej informacji, zobacz EntityClient Provider for the Entity Framework (Dostawca EntityClient dla programu Entity Framework).

  • Praca z zestawami danych.

    Platforma Entity Framework udostępnia wiele tych samych funkcji udostępnianych przez zestaw danych, w tym trwałość w pamięci, śledzenie zmian, powiązanie danych i serializowanie obiektów jako danych XML. Aby uzyskać więcej informacji, zobacz Praca z obiektami.

    Jeśli platforma Entity Framework nie udostępnia funkcji zestawu danych wymaganych przez aplikację, nadal możesz skorzystać z zalet zapytań LINQ przy użyciu linQ to DataSet. Aby uzyskać więcej informacji, zobacz LINQ to DataSet.

Zagadnienia dotyczące aplikacji, które wiążą dane z kontrolkami

Program .NET Framework umożliwia hermetyzowanie danych w źródle danych, takim jak Zestaw danych lub kontrola źródła danych ASP.NET, a następnie powiązanie elementów interfejsu użytkownika z tymi kontrolkami danych. Poniższa lista zawiera opis zagadnień dotyczących powiązań kontrolek z danymi programu Entity Framework.

  • Wiązanie danych z kontrolkami.

    Podczas wykonywania zapytań względem modelu koncepcyjnego program Entity Framework zwraca dane jako obiekty, które są wystąpieniami typów jednostek. Te obiekty można powiązać bezpośrednio z kontrolkami, a to powiązanie obsługuje aktualizacje. Oznacza to, że zmiany danych w kontrolce DataGridView, takie jak wiersz w obiekcie , są automatycznie zapisywane w bazie danych po wywołaniu SaveChanges metody.

    Jeśli aplikacja wylicza wyniki zapytania w celu wyświetlenia danych w kontrolce DataGridView lub innego typu obsługującej powiązanie danych, możesz zmodyfikować aplikację, aby powiązać kontrolkę z wynikiem .ObjectQuery<T>

    Aby uzyskać więcej informacji, zobacz Wiązanie obiektów z kontrolkami.

  • ASP.NET kontrolki źródła danych.

    Program Entity Framework zawiera kontrolkę źródła danych zaprojektowaną w celu uproszczenia powiązania danych w aplikacjach internetowych ASP.NET. Aby uzyskać więcej informacji, zobacz EntityDataSource Web Server Control Overview (Omówienie kontroli serwera sieci Web EntityDataSource).

Inne zagadnienia

Poniżej przedstawiono zagadnienia, które mogą mieć zastosowanie podczas migrowania określonych typów aplikacji do programu Entity Framework.

  • Aplikacje, które uwidaczniają usługi danych.

    Usługi i aplikacje internetowe oparte na programie Windows Communication Foundation (WCF) uwidaczniają dane z bazowego źródła danych przy użyciu formatu komunikatów żądania/odpowiedzi XML. Program Entity Framework obsługuje serializacji obiektów jednostek przy użyciu serializacji kontraktów danych binarnych, XML lub WCF. Serializacja binarna i WCF obsługują pełną serializacji grafów obiektów. Aby uzyskać więcej informacji, zobacz Tworzenie aplikacji N-warstwowych.

  • Aplikacje korzystające z danych XML.

    Serializacja obiektów umożliwia tworzenie usług danych programu Entity Framework. Te usługi udostępniają dane aplikacjom korzystającym z danych XML, takich jak aplikacje internetowe oparte na technologii AJAX. W takich przypadkach rozważ użycie Usługi danych programu WCF. Te usługi danych są oparte na modelu danych jednostki i zapewniają dynamiczny dostęp do danych jednostki przy użyciu standardowych akcji HTTP usługi Representational State Transfer (REST), takich jak GET, PUT i POST. Aby uzyskać więcej informacji, zobacz Usługi danych programu WCF 4.5.

    Platforma Entity Framework nie obsługuje typu danych native-XML. Oznacza to, że gdy jednostka jest mapowana na tabelę z kolumną XML, równoważna właściwość jednostki dla kolumny XML jest ciągiem. Obiekty można rozłączyć i serializować jako XML. Aby uzyskać więcej informacji, zobacz Serializowanie obiektów.

    Jeśli aplikacja wymaga możliwości wykonywania zapytań dotyczących danych XML, nadal możesz korzystać z zalet zapytań LINQ przy użyciu linQ to XML. Aby uzyskać więcej informacji, zobacz LINQ to XML (C#) lub LINQ to XML (Visual Basic).

  • Aplikacje, które utrzymują stan.

    ASP.NET aplikacje internetowe muszą często utrzymywać stan strony sieci Web lub sesji użytkownika. Obiekty w ObjectContext wystąpieniu mogą być przechowywane w stanie widoku klienta lub w stanie sesji na serwerze, a następnie pobierane i ponownie dołączane do nowego kontekstu obiektu. Aby uzyskać więcej informacji, zobacz Dołączanie i odłączanie obiektów.

Zobacz też