Migrálási szempontok (entity framework)
A ADO.NET Entity Framework számos előnyt biztosít egy meglévő alkalmazás számára. Ezeknek az előnyöknek az egyik legfontosabb előnye az, hogy egy fogalmi modell segítségével elkülönítheti az alkalmazás által használt adatstruktúrákat az adatforrás sémájától. Ez lehetővé teszi a tárolási modell vagy magának az adatforrásnak a jövőbeli módosítását anélkül, hogy kompenzáló módosításokat végez az alkalmazáson. Az Entity Framework használatának előnyeiről további információt az Entity Framework áttekintésében és az entitásadat-modellben talál.
Az Entity Framework előnyeinek kihasználásához migrálhat egy meglévő alkalmazást az Entity Frameworkbe. Egyes feladatok gyakoriak az összes migrált alkalmazásban. Ezek a gyakori feladatok közé tartozik az alkalmazás frissítése a .NET-keretrendszer használatára a 3.5 Service Pack 1 (SP1) verziótól kezdve, a modellek és leképezések meghatározása, valamint az Entity Framework konfigurálása. Amikor egy alkalmazást migrál az Entity Frameworkbe, további szempontokat kell figyelembe vennie. Ezek a szempontok a migrált alkalmazás típusától és az alkalmazás adott működésétől függenek. Ez a témakör információkat tartalmaz, amelyek segítenek kiválasztani a legjobb módszert, amelyet egy meglévő alkalmazás frissítésekor használhat.
Általános migrálási szempontok
Az alábbi szempontokat kell figyelembe venni, amikor bármilyen alkalmazást migrál az Entity Frameworkbe:
A .NET-keretrendszer a 3.5 SP1-es verziótól kezdve minden alkalmazás áttelepíthető az Entity Frameworkbe, amennyiben az alkalmazás által használt adatforrás adatszolgáltatója támogatja az Entity Frameworkt.
Előfordulhat, hogy az entitás-keretrendszer nem támogatja az adatforrás-szolgáltató összes funkcióját, még akkor sem, ha ez a szolgáltató támogatja az Entity Frameworkt.
Nagy vagy összetett alkalmazások esetén nem szükséges a teljes alkalmazást egyszerre áttelepíteni az Entity Frameworkbe. Az entitás-keretrendszert nem használó alkalmazás bármely részét azonban továbbra is módosítani kell, amikor az adatforrás megváltozik.
Az Entity Framework által használt adatszolgáltatói kapcsolat megosztható az alkalmazás más részeivel, mivel az Entity Framework ADO.NET adatszolgáltatókat használ az adatforrás eléréséhez. Az SqlClient-szolgáltatót például az Entity Framework használja egy SQL Server-adatbázis eléréséhez. További információ: EntityClient Provider for the Entity Framework.
Gyakori migrálási feladatok
A meglévő alkalmazások entitás-keretrendszerbe való migrálásának elérési útja az alkalmazás típusától és a meglévő adathozzáférési stratégiától függ. Ha azonban egy meglévő alkalmazást az Entity Frameworkbe migrál, mindig az alábbi feladatokat kell elvégeznie.
Feljegyzés
Ezeket a feladatokat a rendszer automatikusan végrehajtja, amikor a Visual Studio 2008-tól kezdve az Entity Data Model eszközeit használja. További információ : Útmutató: Az Entitásadatmodell varázsló használata.
Frissítse az alkalmazást.
A Visual Studio és a .NET-keretrendszer egy korábbi verziójával létrehozott projektet frissíteni kell a Visual Studio 2008 SP1 és a .NET-keretrendszer a 3.5 SP1-es verziótól kezdve.
Határozza meg a modelleket és a leképezést.
A modell- és leképezési fájlok entitásokat határoznak meg a fogalmi modellben; az adatforrás struktúrái, például táblák, tárolt eljárások és nézetek; és az entitások és az adatforrás-struktúrák közötti leképezés. További információ : Hogyan: A modell és a leképezési fájlok manuális definiálása.
A tárolási modellben definiált típusoknak meg kell egyeznie az adatforrás objektumainak nevével. Ha a meglévő alkalmazás objektumként teszi elérhetővé az adatokat, győződjön meg arról, hogy a fogalmi modellben definiált entitások és tulajdonságok megegyeznek a meglévő adatosztályok és tulajdonságok nevével. További információ : How to: Customize Modeling and Mapping Files to Work with Custom Objects.
Feljegyzés
Az Entitásadatmodell-tervező a fogalmi modell entitásainak átnevezésére használható a meglévő objektumoknak megfelelően. További információ: Entity Data Model Designer.
Adja meg a kapcsolati sztring.
Az Entity Framework speciálisan formázott kapcsolati sztring használ lekérdezések fogalmi modellen való végrehajtásakor. Ez a kapcsolati sztring a modellre és a leképezési fájlokra, valamint az adatforráshoz való kapcsolatra vonatkozó információkat foglalja magában.
Konfigurálja a Visual Studio-projektet.
Az Entity Framework-szerelvényekre, valamint a modell- és leképezési fájlokra mutató hivatkozásokat hozzá kell adni a Visual Studio-projekthez. Ezeket a leképezési fájlokat hozzáadhatja a projekthez, hogy azok az alkalmazással a kapcsolati sztring megjelölt helyen legyenek üzembe helyezve. További információ : Entitás-keretrendszerprojekt manuális konfigurálása.
A meglévő objektumokkal rendelkező alkalmazások szempontjai
A .NET-keretrendszer 4-től kezdve az Entity Framework támogatja az "egyszerű régi" CLR-objektumokat (POCO), más néven perzisztencia-tudatlan objektumokat. A legtöbb esetben a meglévő objektumok kisebb módosítások elvégzésével együttműködhetnek az Entity Frameworktel. További információ: A POCO-entitások használata. Az alkalmazásokat az Entity Frameworkbe is migrálhatja, és használhatja az Entity Framework eszközei által létrehozott adatosztályokat. További információ : Útmutató: Az Entitásadatmodell varázsló használata.
A ADO.NET-szolgáltatókat használó alkalmazások szempontjai
ADO.NET szolgáltatók, például az SqlClient lehetővé teszik egy adatforrás lekérdezését táblázatos adatok visszaadásához. Az adatok betölthetők egy ADO.NET DataSetbe is. Az alábbi lista egy meglévő ADO.NET szolgáltatót használó alkalmazás frissítésének szempontjait ismerteti:
Táblázatos adatok megjelenítése adatolvasóval.
Érdemes lehet egy Entity SQL-lekérdezést végrehajtani az EntityClient-szolgáltatóval, és a visszaadott EntityDataReader objektumon keresztül számba venni. Ezt csak akkor végezze el, ha az alkalmazás táblázatos adatokat jelenít meg egy adatolvasó használatával, és nem igényli az Entity Framework által biztosított lehetőségeket az adatok objektumokká való alakításához, a változások nyomon követéséhez és a frissítések elvégzéséhez. Továbbra is használhat meglévő adatelérési kódot, amely frissíti az adatforrást, de használhatja a meglévő kapcsolatot, amely a StoreConnection tulajdonságból EntityConnectionérhető el. További információ: EntityClient Provider for the Entity Framework.
Adathalmazok használata.
Az Entity Framework számos, az Adathalmaz által biztosított funkciót biztosít, beleértve a memóriában való adatmegőrzést, a változáskövetést, az adatkötést és az objektumok XML-adatként való szerializálását. További információ: Az objektumok használata.
Ha az Entity Framework nem biztosítja az alkalmazás által igényelt adathalmaz funkcióit, akkor is kihasználhatja a LINQ-lekérdezések előnyeit a LINQ to DataSet használatával. További információ: LINQ to DataSet.
Az adatok vezérlőkhöz kötését lehetővé tevő alkalmazások szempontjai
A .NET-keretrendszer lehetővé teszi, hogy adatokat ágyazza be egy adatforrásba, például egy Adathalmazba vagy egy ASP.NET adatforrás-vezérlőbe, majd kösse a felhasználói felület elemeit ezekhez az adatvezérlőkhöz. Az alábbi lista az Entity Framework-adatokhoz való kötéssel kapcsolatos szempontokat ismerteti.
Adatok kötése vezérlőkhöz.
A fogalmi modell lekérdezésekor az Entity Framework az adatokat entitástípusok példányaként adja vissza. Ezek az objektumok közvetlenül a vezérlőkhöz köthetők, és ez a kötés támogatja a frissítéseket. Ez azt jelenti, hogy a vezérlőelemek adatainak (például egy sornak DataGridView) a módosítása automatikusan az adatbázisba kerül a SaveChanges metódus meghívásakor.
Ha az alkalmazás számba adja egy lekérdezés eredményeit, hogy adatokat jelenítsen meg egy DataGridView vagy más típusú, adatkötést támogató vezérlőelemben, módosíthatja az alkalmazást úgy, hogy a vezérlőt egy ObjectQuery<T>eredményhez kösse.
További információ: Objektumok kötése vezérlőkhöz.
ASP.NET adatforrás-vezérlők.
Az Entity Framework tartalmaz egy adatforrás-vezérlőt, amely leegyszerűsíti az adatkötést ASP.NET webalkalmazásokban. További információ: EntityDataSource Web Server Control – Áttekintés.
Egyéb szempontok
Az alábbiakban azokat a szempontokat vesszük figyelembe, amelyek akkor alkalmazhatók, ha bizonyos típusú alkalmazásokat migrál az Entity Frameworkbe.
Az adatszolgáltatásokat közzétenő alkalmazások.
A Windows Communication Foundationen (WCF) alapuló webszolgáltatások és alkalmazások XML-kérés-/válaszüzenet-formátum használatával teszik elérhetővé az adatokat egy mögöttes adatforrásból. Az Entity Framework bináris, XML- vagy WCF-adatszerződések szerializálásával támogatja az entitásobjektumok szerializálását. A bináris és a WCF-szerializálás egyaránt támogatja az objektumdiagramok teljes szerializálását. További információ: N szintű alkalmazások létrehozása.
XML-adatokat használó alkalmazások.
Az objektum szerializálása lehetővé teszi az Entity Framework-adatszolgáltatások létrehozását. Ezek a szolgáltatások az XML-adatokat használó alkalmazások, például az AJAX-alapú internetes alkalmazások számára biztosítanak adatokat. Ezekben az esetekben fontolja meg a WCF Data Services használatát. Ezek az adatszolgáltatások az entitásadat-modellen alapulnak, és dinamikus hozzáférést biztosítanak az entitásadatokhoz szabványos reprezentációs állapotátviteli (REST) HTTP-műveletekkel, például GET, PUT és POST műveletekkel. További információ: WCF Data Services 4.5.
Az Entity Framework nem támogatja a natív XML-adattípust. Ez azt jelenti, hogy ha egy entitás egy XML-oszlopot tartalmazó táblára van leképezve, az XML-oszlop egyenértékű entitástulajdonsága egy sztring. Az objektumok leválaszthatók és XML-ként szerializálhatók. További információ: Objektumok szerializálása.
Ha az alkalmazás megköveteli az XML-adatok lekérdezését, akkor is kihasználhatja a LINQ-lekérdezések előnyeit a LINQ-ből XML-be történő használatával. További információ: LINQ–XML (C#) vagy LINQ–XML (Visual Basic).
Állapotot fenntartó alkalmazások.
ASP.NET webalkalmazásnak gyakran meg kell őriznie egy weblap vagy egy felhasználói munkamenet állapotát. A példányok ObjectContext objektumai tárolhatók az ügyfélnézeti állapotban vagy a kiszolgáló munkamenet-állapotában, majd később lekérhetők, és újra lekérhetők egy új objektumkörnyezetbe. További információ: Objektumok csatolása és leválasztása.