Aspekty migrace (Entity Framework)
ADO.NET Entity Framework poskytuje stávající aplikaci několik výhod. Jednou z nejdůležitějších výhod je možnost použití konceptuálního modelu k oddělení datových struktur používaných aplikací od schématu ve zdroji dat. To vám umožní snadno provádět budoucí změny modelu úložiště nebo samotného zdroje dat, aniž byste museli provádět kompenzační změny aplikace. Další informace o výhodách použití entity Framework naleznete v tématu Přehled Entity Framework a Entity Data Model.
Pokud chcete využít výhod entity Framework, můžete migrovat existující aplikaci do Entity Frameworku. Některé úlohy jsou společné pro všechny migrované aplikace. Mezi tyto běžné úlohy patří upgrade aplikace tak, aby používala rozhraní .NET Framework počínaje verzí 3.5 Service Pack 1 (SP1), definováním modelů a mapováním a konfigurací entity Framework. Při migraci aplikace do entity Framework existují další aspekty, které platí. Tyto aspekty závisí na typu migrované aplikace a na konkrétních funkcích aplikace. Toto téma obsahuje informace, které vám pomůžou zvolit nejlepší způsob použití při upgradu existující aplikace.
Obecné aspekty migrace
Při migraci jakékoli aplikace do entity Framework platí následující aspekty:
Všechny aplikace, které používají rozhraní .NET Framework počínaje verzí 3.5 SP1, je možné migrovat do entity Framework, pokud zprostředkovatel dat pro zdroj dat používaný aplikací podporuje Entity Framework.
Entity Framework nemusí podporovat všechny funkce poskytovatele zdroje dat, i když tento zprostředkovatel podporuje Entity Framework.
U velkých nebo složitých aplikací není nutné migrovat celou aplikaci na Entity Framework najednou. Při změně zdroje dat se ale musí změnit jakákoli část aplikace, která nepoužívá Entity Framework.
Připojení zprostředkovatele dat, které používá Entity Framework, je možné sdílet s jinými částmi aplikace, protože Entity Framework používá ADO.NET zprostředkovatelů dat pro přístup ke zdroji dat. Například zprostředkovatel SqlClient používá Entity Framework pro přístup k databázi SQL Serveru. Další informace naleznete v tématu EntityClient Provider for the Entity Framework.
Běžné úlohy migrace
Cesta k migraci existující aplikace do entity Framework závisí jak na typu aplikace, tak na existující strategii přístupu k datům. Při migraci existující aplikace do entity Framework však musíte vždy provádět následující úlohy.
Poznámka:
Všechny tyto úlohy se provádějí automaticky při použití nástrojů Entity Data Model počínaje sadou Visual Studio 2008. Další informace naleznete v tématu Postupy: Použití Průvodce datovým modelem entity.
Upgradujte aplikaci.
Projekt vytvořený pomocí starší verze sady Visual Studio a rozhraní .NET Framework musí být upgradován tak, aby používal Visual Studio 2008 SP1 a rozhraní .NET Framework počínaje verzí 3.5 SP1.
Definujte modely a mapování.
Model a soubory mapování definují entity v konceptuálním modelu; struktury ve zdroji dat, jako jsou tabulky, uložené procedury a zobrazení; a mapování mezi entitami a strukturami zdrojů dat. Další informace naleznete v tématu Postupy: Ruční definování modelu a souborů mapování.
Typy definované v modelu úložiště musí odpovídat názvu objektů ve zdroji dat. Pokud existující aplikace zveřejňuje data jako objekty, musíte zajistit, aby entity a vlastnosti definované v koncepčním modelu odpovídaly názvům těchto existujících datových tříd a vlastností. Další informace naleznete v tématu Postupy: Přizpůsobení modelování a mapování souborů pro práci s vlastními objekty.
Poznámka:
Návrhář modelu Entity Data Model lze použít k přejmenování entit v konceptuálním modelu tak, aby odpovídaly existujícím objektům. Další informace naleznete v tématu Návrhář modelu Entity Data Model.
Definujte připojovací řetězec.
Entity Framework používá speciálně naformátované připojovací řetězec při provádění dotazů na konceptuální model. Tato připojovací řetězec zapouzdřuje informace o modelu a mapování souborů a připojení ke zdroji dat.
Nakonfigurujte projekt sady Visual Studio.
Odkazy na sestavení Entity Framework a soubory modelu a mapování musí být přidány do projektu sady Visual Studio. Tyto soubory mapování můžete přidat do projektu, abyste zajistili, že se nasadí s aplikací v umístění, které je uvedeno v připojovací řetězec. Další informace naleznete v tématu Postupy: Ruční konfigurace projektu Entity Framework.
Důležité informace o aplikacích s existujícími objekty
Počínaje rozhraním .NET Framework 4 podporuje Entity Framework "prosté staré" objekty CLR (POCO), označované také jako persistence-ignorant objekty. Ve většině případů můžou stávající objekty pracovat s Entity Framework provedením menších změn. Další informace naleznete v tématu Práce s entitami POCO. Můžete také migrovat aplikaci do entity Framework a používat datové třídy, které jsou generovány nástroji Entity Framework. Další informace naleznete v tématu Postupy: Použití Průvodce datovým modelem entity.
Důležité informace o aplikacích, které používají poskytovatele ADO.NET
ADO.NET poskytovatelé, jako je SqlClient, umožňují dotazovat zdroj dat, aby vracela tabulková data. Data lze také načíst do datové sady ADO.NET. Následující seznam popisuje aspekty upgradu aplikace, která používá existujícího poskytovatele ADO.NET:
Zobrazení tabulkových dat pomocí čtečky dat
Můžete zvážit spuštění dotazu Entity SQL pomocí zprostředkovatele EntityClient a vytvoření výčtu prostřednictvím vráceného EntityDataReader objektu. Tuto akci proveďte pouze v případě, že aplikace zobrazuje tabulková data pomocí čtečky dat a nevyžaduje zařízení, která poskytuje Entity Framework pro materializaci dat do objektů, sledování změn a provádění aktualizací. Můžete dál používat existující kód pro přístup k datům, který provádí aktualizace zdroje dat, ale můžete použít stávající připojení, ke kterému se přistupuje z StoreConnection vlastnosti EntityConnection. Další informace naleznete v tématu EntityClient Provider for the Entity Framework.
Práce s datovými sadami
Entity Framework poskytuje mnoho stejných funkcí, které poskytuje DataSet, včetně trvalosti v paměti, sledování změn, datové vazby a serializace objektů jako dat XML. Další informace naleznete v tématu Práce s objekty.
Pokud Entity Framework neposkytuje funkce datové sady potřebné vaší aplikací, můžete stále využívat výhody dotazů LINQ pomocí LINQ to DataSet. Další informace naleznete v tématu LINQ to DataSet.
Důležité informace o aplikacích, které sváže data s ovládacími prvky
Rozhraní .NET Framework umožňuje zapouzdřovat data ve zdroji dat, jako je například DataSet nebo ASP.NET ovládací prvek zdroje dat, a pak svázat prvky uživatelského rozhraní s těmito ovládacími prvky dat. Následující seznam popisuje aspekty vazeb ovládacích prvků s daty Entity Frameworku.
Vytvoření vazby dat k ovládacím prvkům
Při dotazování konceptuálního modelu vrátí Entity Framework data jako objekty, které jsou instancemi typů entit. Tyto objekty mohou být vázány přímo na ovládací prvky a tato vazba podporuje aktualizace. To znamená, že změny dat v ovládacím prvku, například řádek v řádku DataGridView, se automaticky uloží do databáze při SaveChanges zavolání metody.
Pokud vaše aplikace vytvoří výčet výsledků dotazu pro zobrazení dat v ovládacím DataGridView prvku nebo jiném typu ovládacího prvku, který podporuje datovou vazbu, můžete upravit aplikaci tak, aby vazbu ovládacího prvku na výsledek ovládacího ObjectQuery<T>prvku .
Další informace naleznete v tématu Vazby objektů k ovládacím prvkům.
ASP.NET ovládací prvky zdroje dat.
Entity Framework obsahuje ovládací prvek zdroje dat navržený tak, aby zjednodušil vazbu dat v ASP.NET webových aplikacích. Další informace naleznete v tématu EntityDataSource Web Server – přehled ovládacího prvku.
Ostatní úvahy
Níže jsou uvedené aspekty, které se můžou použít při migraci konkrétních typů aplikací do entity Framework.
Aplikace, které zpřístupňují datové služby.
Webové služby a aplikace založené na technologii Windows Communication Foundation (WCF) zveřejňují data z podkladového zdroje dat pomocí formátu zasílání zpráv požadavků a odpovědí XML. Entity Framework podporuje serializaci objektů entity pomocí binární, XML nebo WCF datové kontrakt serializace. Binární serializace i serializace WCF podporují úplnou serializaci grafů objektů. Další informace naleznete v tématu Vytváření N-vrstvých aplikací.
Aplikace, které používají data XML.
Serializace objektů umožňuje vytvářet datové služby Entity Framework. Tyto služby poskytují data aplikacím, které využívají data XML, jako jsou internetové aplikace založené na AJAX. V těchto případech zvažte použití Datové služby WCF. Tyto datové služby jsou založené na modelu Entity Data Model a poskytují dynamický přístup k datům entity pomocí standardních akcí HTTP pro reprezentaci state Transfer (REST), jako jsou GET, PUT a POST. Další informace najdete v tématu Datové služby WCF 4.5.
Entity Framework nepodporuje datový typ native-XML. To znamená, že když je entita namapovaná na tabulku se sloupcem XML, ekvivalentní vlastnost entity pro sloupec XML je řetězec. Objekty lze odpojit a serializovat jako XML. Další informace naleznete v tématu Serializace objektů.
Pokud vaše aplikace vyžaduje možnost dotazovat se na data XML, můžete stále využít výhody dotazů LINQ pomocí LINQ to XML. Další informace najdete v tématu LINQ to XML (C#) nebo LINQ to XML (Visual Basic).
Aplikace, které udržují stav
ASP.NET webové aplikace musí často udržovat stav webové stránky nebo uživatelské relace. Objekty v ObjectContext instanci mohou být uloženy ve stavu zobrazení klienta nebo ve stavu relace na serveru a později načíst a znovu připojit k novému kontextu objektu. Další informace naleznete v tématu Připojení a odpojení objektů.