Entity Framework

A Wikipédiából, a szabad enciklopédiából

Az ADO.NET Entitás-keretrendszer (EF, Entity Framework) egy objektum-relációs leképező keretrendszer a .NET keretrendszerhez.

Története[szerkesztés]

Az entitás keretrendszer első verziója (az EFv1) a .NET keretrendszer 3.5 verzió 1. szervizcsomagjának és a Visual Studio 2008 2008. augusztus 11-én kiadott 1. szervizcsomagjának a része volt. Ez a verzió rengeteg kritikát kapott, egészen odáig, hogy mintegy ezer fejlesztő aláírásával egy bizalmatlansági nyilatkozat készült.[1]

Az entitás keretrendszer második kiadása, az Entitás Keretrendszer 4.0 (EFv4), a .NET 4.0 részeként jelent meg 2010. április 12-én, és megkísérelte az 1.0-ért kritikák által kifogásolt hiányosságok jó részének javítását.[2]

A harmadik verziót, 4.1-es verziószámmal, 2011. április 12-én adták ki egy Code First támogatással.

A 4.1 frissítésként jelent meg az Entitás Keretrendszer 4.1 Update 1, amely 2011. július 25-én látott napvilágot. Új típustámogatások és hibajavítások kaptak benne helyet.

A legújabb verziót, a 4.3.1-est, 2012. február 29-én adták ki.[3] Egy pár frissítés és migrációs támogatás kapott benne helyet.

A legújabb kiadás előtti próbaverzió, az 5.0.0-beta2, a [1], címen érhető el; a .NET keretrendszer 4.5 változatát célozza meg.

Architektúra[szerkesztés]

Az ADO.NET Entitás Keretrendszer architektúrája az alábbiakból áll össze növekvő absztrakciós sorrendben:

  • Adatforrás-specifikus kiszolgálók, amely absztrakciós ADO.NET felületeket használnak fel az adatbázis kapcsolathoz, amikor sémák szerint programozunk.
  • Leképzés kiszolgáló, egy adatbázis függő kiszolgáló, amely lefordítja az Entitás SQL utasításfát lekérdezésekké az adatbázis natív SQL nyelvének megfelelően. Ez magába foglalja a tároló függő hidat, azt a komponenst, amely felelős a generikus utasításfák tárolófüggő utasításfákra való fordításáért.
  • EDM elemző és nézet leképezés, amely felhasználja az adatmodell SDL specifikációját, és az alapján, ahogyan az leképez a relációs modellre, lehetővé teszi az elméleti modellben történő programozást. A relációs sémából létrehoz nézeteket, amely megfelel az elméleti modellnek. Összegyűjti az információkat különböző táblákból entitásokat kialakítva belőlük, és szétosztja, illetve frissíti az entitás adatait a különböző táblákban, függetlenül attól, mely táblák tartoznak az entitáshoz.
  • Lekérdezés és frissítés csővezeték, azaz pipeline, folyamat-lekérdezések, filterek és frissítési kérelmek küldése, hogy átalakítsa őket kanonikus utasításfákká, amelyeket tároló specifikus lekérdezésekké alakít a leképzés szolgáltató segítségével.
  • Metaadat szolgáltatók, ez kezeli az összes entitáshoz rendelt metaadatot, kapcsolatokat és leképezéseket.
  • Tranzakciók, elérhetővé teszik a tár tranzakciós szolgáltatásait. Amennyiben a felhasznált tároló nem támogatja a tranzakciókat, a szükségeknek megfelelően ez a réteg valósítja meg ezeket.
  • Koncepciós réteg API, egy olyan környezet, amely lehetővé teszi a koncepciós séma programozását. Követi az ADO.NET mintákat Connection objektumok használatával, hogy leképezés szolgáltatókra hivatkozzon, használja a Command objektumokat hogy leképezések küldjön el, és EntityResultSets vagy EntitySets-ként adja vissza a végeredményt.
  • Kapcsolat nélküli/leválasztott komponensek, helyileg tárolják az adathalmazt és az entitás halmazokat, hogy kihasználják az ADO.NET Entitás Keretrendszer lehetőségeit egy alkalmanként csatlakozó környezetben.
    • Beágyazott adatbázis: az ADO.NET Entitás Keretrendszer magában foglal egy könnyű súlyú adatbázist a relációs adatok felhasználó oldali gyorsítótárazására.
  • Tervező eszközök, a Leképezés Tervezőhöz hasonlóan ezek szintén beépítettek az ADO.NET Entitás Keretrendszerbe. Egyszerűsíti a leképezéseken végzett feladatokat egy koncepciós sémából relációs sémába és meghatározza, hogy az entitás típus adott tulajdonságai mely táblához tartoznak az adatbázisban.
  • Programozási réteg, rajta keresztül férünk hozzá az EDM-hez mint programozási konstrukcióhoz, amely felhasználható a programozási nyelveken.
    • Objektum szolgáltatások, automatikusan generálják a kódot CLR osztályokhoz, amelyek az entitásnak megfelelő tulajdonságokkal rendelkeznek, ezzel lehetővé téve az entitások .NET objektumokként való példányosítását.
    • Web szolgáltatások, az entitások segítségükkel web szolgáltatásként elérhetőek.
  • Magas szintű szolgáltatások, mint például a jelentés szolgáltató, amely entitásokkal dolgozik relációs adatok helyett.

Entitás Adat Modell[szerkesztés]

Az Entitás Adat Modell (EDM) fogalmazza meg a koncepcionális modellt (CSDL) az entitás kapcsolati modell segítségével, amely az entitásokkal foglalkozik legfőképp és hozzárendelésekkel, amelyekben érintettek. Az EDM séma a Séma Definíciós Nyelven van megadva (SDL), amely egy XML megoldás. Ehhez hozzá adódik, a leképezése (MSL) az elemeknek a koncepciós sémára (CSDL) és a tároló séma (SSDL) amelyeknek szintén muszáj elkészíteni. A leképezés meghatározása szintén XML-el történik.[4]

Visual Studio szintén nyújt egy Entitás Tervezőt, az EDM vizuális létrehozásához és a leképezés meghatározásához. Az eszköz kimenete egy XML fájl (*.edmx) határozza meg a sémát és a leképezést. Az Edmx fájl tartalmazza az EF metaadat meghatározásokat (CSDL/MSL/SSDL tartalmak). Ez a három fájl (csdl, msl, ssdl) szintén létrehozható és szerkeszthető kézzel.

Leképezés[szerkesztés]

Az Entitás Adat Modell Varázsló[5] a Visual Studioban kezdetben generál egy 1:1 (egy az egyhez) leképezést a koncepciós és az adatbázis séma közt az esetek nagy részében. A relációs sémában, az elemek táblákká kerülnek összeállításra, amelyekben az elsődleges és az idegen kulcsok kapcsolják az adatokat össze. Az Entitás Típusok definiálják az adatok koncepcionális sémáit.

Az entitás típus különböző típusú mezők összesítése – minden mező a tábla megfelelő oszlopába képződik le – és tartalmazhat információkat több fizikai táblából. Az entitás típusok összekapcsolhatóak, a fizikai sémában lévő kapcsolataiktól függetlenül. A kapcsolt entitások szintén hasonlósan alakíthatóak ki – a mezőkön keresztül amely meghatározza a kapcsolatot közreműködnek a hozzáférésben, amely ahelyett hogy visszaadna egy értéket egy adatbázis oszlopból, bejárja a kapcsolatot és visszaad egy entitást (vagy entitás kollekciót) amely hozzá kapcsolt.

Az entitás típus meghatározza az entitások osztályát, hogy az entitás objektum mely típusból került példányosításra. Az entitások objektumokként állnak elő amelyek egy alkalmazás probléma megoldásának részét képezik és egy kulccsal indexeltek. Például, egy fizikai séma átalakításával, amint azt fentebb részleteztük, két entitás típushoz jutunk:

  • CustomerEntity, amely tartalmazza a nevet a Customers táblából, és a vásárló címét a Contacts táblából.
  • OrderEntity, amely magába foglalja egy vásárló egy rendelését, az Orders táblából nyerhető.

A logikai sémát és annak leképezése a fizikai sémára Entitás Adat Modell (EDM), határozza meg egy XML fájlban. ADO.NET Entitás Keretrendszer használja az EDMet hogy létrehozza a leképezést és biztosítsa az alkalmazásnak hogy dolgozhasson az entitásokkal, míg belül absztrahálja az ADO.NET konstrukció szerinti DataSet és RecordSet adathalmazokat. ADO.NET Entitás Keretrendszer kezeli az SQL JOIN műveleteket hogy kinyerje a szükséges entitás információkat a különböző táblákból, vagy amikor egy kapcsolatot bejár. amikor egy entitás frissítésre kerül, visszaköveti hogy mely táblákból származnak az adatok és végrehajt SQL UPDATE utasításokat hogy frissítsen a táblákban amelyekben adatok módosultak. ADO.NET Entitás Keretrendszer eSQL-t használ, az SQL egy leszármaztatott verzióját, hogy megoldja a lekérdezéseket, halmaz elméleti műveleteket, és frissítéseket az entitásokon és a kapcsolataikon. A lekérdezések eSQL-ben, ha szükséges, az adatbázis natív SQL nyelvére kerülnek lefordításra.

Az entitás típusok és entitás halmazok az EDM sémából, bármiként kiajánlhatóak. ADO.NET Entitás Keretrendszer magába foglalja az Objektum Szolgáltatást amely az entitásokat objektumokként szolgáltatja az elemeikkel és a kapcsolataikat mint tulajdonságok. Ezek az entitás objektumok csak front-end-ek az EDM entitás típusokhoz, amely lehetővé teszi az objektum orientált nyelvek számára a hozzáférést. Hasonlóan, más front-end-ek is létrehozhatóak, amely az entitásokat webszolgáltatásként hozza létre (értsd, WCF adat szolgáltatások) vagy XML amelyek az entitások szerializálására használt a perzisztencia biztosítására vagy az átírási átvitelekhez.[6]

Entitások[szerkesztés]

Az Entitás Típus példányai; egy tetszőleges objektumot reprezentálhatnak (mint a customer, orders) amelyek információ kimentésével és tárolásával foglalkoznak. Egy entitás identitása az entitás típus által van meghatározva annak egy példánya; ilyen módon érzékeltetve az entitás típus egy osztályt határoz meg egy entitás ehhez tartozik és definiálja azt is hogy milyen tulajdonságai mezői vannak egy entitásnak. A tulajdonság mezők bizonyos értelemben leírják az entitást azáltal hogy nevet és típust rendelnek az entitáshoz. Az entitás típus tulajdonságai az ADO.NET Entitás Keretrendszerben teljesen típusosak, és teljesen kompatibilisek DBMS rendszer által használt típus rendszerrel, úgy mint a Common Type System a .NET Keretrendszerben. Egy tulajdonság mező lehet egyszerű típus vagy összetett, és lehet több értékű is. Minden entitás típushoz tartozik névtér, és van egy entitás kulcs tulajdonság mezője amely egyedi azonosító minden entitás típus példányhoz. A különböző tulajdonság mezők a következő képen alakulnak:

  • Egyszerű Típus, megfelel egy olyan egyszerű adat típusnak minta az Integer, Karakterek és Lebegő Pontos számok.[7]
  • Összetett Típus, különféle egyszerű típusú tulajdonság mezőket egyesít, vagy Összetett Típusokat. Nem úgy mint az Entitás Típus, habár, az Összetett Típusoknak nem lehet Entitás Kulcsuk. Az Entitás Keretrendszerben v1 az Összetett Típusok nem származtathatóak.[8]

Minden entitást egy entitás tároló kezel, ami egy elő-projekt tárolója az entitásokhoz. Minden projekt tartalmaz egy vagy több entitás-konténert, amely hivatkozhat az entitásokra névterektől és entitás-típustól függetlenül. Az entitás típus több példánya tárolható kollekciókban/gyűjteményekben amelyeket EntitySet-ként neveznek . Egy entitásnak lehet több EntitySet-je.

EDM primitív típusok (egyszerű típusok):

EDM típus CLR típus leképzése
Edm.Binary Byte[]
Edm.Boolean Boolean
Edm.Byte Byte
Edm.DateTime DateTime
Edm.DateTimeOffset DateTimeOffset
Edm.Decimal Decimal
Edm.Double Double
Edm.Guid Guid
Edm.Int16 Int16
Edm.Int32 Int32
Edm.Int64 Int64
Edm.SByte SByte
Edm.Single Single
Edm.String String
Edm.Time TimeSpan

Kapcsolatok[szerkesztés]

Bármely két típus összekapcsolható, egy Hozzárendelés segítségével kapcsolatba hozható egy Tartalmazás relációval. Például, egy szállítmány számlázott egy vásárlónak egy kapcsolaton keresztül ahol a egy megrendelés tartalmazza a megrendelés adatait egy tartalmazás relációval. Egy tartalmazás reláció szintén használható az elemek örököltetésének modellezésére. A kapcsolat két entitás típus közt egy Kapcsolat Típuson keresztül van meghatározva, ennek példányai, amelyeket Kapcsolatnak neveznek, tartozik az entitás példányokhoz. A jövőbeli kiadásokban, más kapcsolati típusok mint amilyen a Kompozíció, vagy Azonosítás, valószínűleg bevezetésre kerülnek majd. A kapcsolat típusok a fokuk (aritás) által karakterizáltak vagy a hivatkozott entitás típusok számával és a multiplicitásukkal. Habár, az ADO.NET Entitás Keretrendszer jelenlegi kiadásában, a kapcsolatok limitáltak egy kettős (kettes fokú) kétirányú kapcsolatként. A multiplicitás meghatározza hogy hány entitás példány kapcsolható egymáshoz. A multiplicitást alapul véve, a kapcsolatok lehetnek egy-egy, egy-több, több-több kapcsolatok. A kapcsolatoknak az entitások közt van neve; ezt Role-nak hívják. Ez meghatározza a kapcsolat okát.

Egy relációs típushoz tartozhat Operáció vagy Akció hozzárendelve, amely lehetővé teszi műveletek végrehajtását a kapcsolaton egy entitáshoz tartozó esemény hatással lehet ezen keresztül a kapcsolt entitásra. A kapcsolatot meg lehet úgy adni, hogy egy Akció vagy estenként Operáció kerüljön végrehajtásra a hivatkozott entitáson. Például, egy entitás törlésekor ami egy reláció részét képzi az OnDelete művelet kerülhet felhasználásra:[9]

  • Kaszkád, amely utasítást ad a kapcsolat példányt törlésére minden kapcsolt entitás példányon.
  • None.

Az asszociációs kapcsolattal, különböző viselkedés szemantika adható meg mindkét oldalán, különböző akciók adhatóak meg a két oldalát tekintve.

Séma Definíciós Nyelv[szerkesztés]

Az ADO.NET Entitás keretrendszer egy XML alapú Adat Definíciós nyelvet alkalmaz, amit Séma Definíciós Nyelvnek hívnak (SDL) hogy megadja az EDM sémát. Az SDL megadja az egyszerű típusokat csak úgy mint a CTS primitív típusokat, beleérve a String, Int32, Double, Decimal, Guid, és DateTime, többek közt. Egy Enumeration, ami értékek és nevek közt ad meg leképzéseket, szintén egyszerű típusnak minősül. Az Enumerációk nem támogatottak a keretrendszer jelenlegi változatában. A Komplex Típusok más típusok befoglalásával állnak elő. A tulajdonságok gyűjteményét fogja össze az Entitás Típus . Ez a meghatározás EBNF nyelvtannal adható meg:

EntityType  ::= ENTITYTYPE entityTypeName [BASE entityTypeName]
 [ABSTRACT true|false] KEY propertyName [, propertyName]*
 {(propertyName PropertyType [PropertyFacet]*) +}

PropertyType ::= ((PrimitiveType [PrimitiveTypeFacets]*)
 |  (complexTypeName) | RowType
PropertyFacet ::= ( [NULLABLE true | false] |
 [DEFAULT defaultVal] | [MULTIPLICITY [ 1|*] ] )
PropertyTypeFacet ::= MAXLENGTH | PRECISION | SCALE | UNICODE | FIXEDLENGTH | COLLATION
 | DATETIMEKIND | PRESERVESECONDS
PrimitiveType ::= BINARY | STRING | BOOLEAN
 | SINGLE | DOUBLE | DECIMAL | GUID
 | BYTE | SBYTE | INT16 | INT32 | INT64
 | DATETIME | DATETIMEOFFSET | TIME )

Facets[10] metaadat vagy tulajdonság leírására használtak, függetlenül attól hogy referencia vagy alapértékkel rendelkező (struktúra) típusról van szó, ugyanúgy figyelembe véve azt, hogy a tulajdonság egy értékű vagy többértékű. Az “1” multiplicitás egy értéket jelöl; A “*” egy sok értékű tulajdonságot. Példaként tekintve, egy tulajdonság a következő képen jelölhető SDL-ben:

 <ComplexType Name = "Addr">
     <Property Name = "Street" Type = "String" Nullable = "false" />
     <Property Name = "City" Type = "String" Nullable = "false" />
     <Property Name = "Country" Type = "String" Nullable = "false" />
     <Property Name = "PostalCode" Type = "Int32" />
 </ComplexType>
 <EntityType Name = "Customer">
     <Key>
          <PropertyRef Name = "Email" />
     </Key>
     <Property Name = "Name" Type = "String" />
     <Property Name = "Email" Type = "String" Nullable = "false" />
     <Property Name = "Address" Type = "Addr" />
 </EntityType>

A kapcsolati típus úgy határozható meg hogy megadjuk a végpontjait és a multiplicitásukat. Például, az egy-több kapcsolat egy Customer (vásárló) és Orders (rendelések) így adható meg

 <Association Name = "CustomerAndOrders">
     <End Type = "Customer" Multiplicity = "1" />
     <End Type = "Orders" Multiplicity = "*">
         <OnDelete Action = "Cascade"/>
     </End>
 </Association>

Entitás Adat Modell tervezési szemléletei[szerkesztés]

Adatbázist Először[szerkesztés]

Az Entitás Keretrendszer támogat különböző Entitás Adat Modell tervezési szemléleteket. Az Adatbázis Először volt történelmileg az első ezek közül. Az Entitás keretrendszer v1-ben tűnt fel, és a hozzá szükséges támogatás a Visual Studio 2008 SP1 foglalta magába. Ez a szemlélet feltételezi egy korábbi (legacy) adatbázis használatát, vagy egy új de előre létrehozott adatbázis meglétét. Az Entitás Adat Modell az Entitás Adat Modell Varázsló segítségével készíthető el ilyen esetekben.[5][11]

Minden szükséges modell változás a (CSDL) és a leképzés változások (MSL) végrehajthatóak az Entitás Adat Modell tervezővel.[12] Ha a tároló részt kell változtatni, az adatbázist kell először megváltoztatni, és az Entitás Adat Modell frissíthető a Modell Frissítés Varázslóval.[13]

Az Adatbázis Először szemlélet csak MS SQL Szerver estén támogatott a Visual Studio 2008/2010-ben . Habár, vannak külső készítők által kiadott alkalmazások amelyek Adatbázis Először támogatást adnak a Visual Studiohoz más szerverek támogatásához is: DB2, EffiProz, Firebird, Informix, MySQL, Oracle, PostgreSQL, SQLite, Sybase, és VistaDB-hez.[14] Emellett, vannak olyan külsős eszközök is amelyek teljesen lecserélik az Entitás Adat Modell Varázslót, az Entitás Adat Modell Tervezőt és a Modell Frissítés Varázslót:[15]

Modell Először[szerkesztés]

Az új, Modell Először szemlélet a Visual Studio 2010-ben tűnt fel először, amely az Entitás Keretrendszer második kiadásával együtt látott napvilágot (Entity Framework v4). A Modell Először szemlélet esetén a fejlesztés a nulláról indul. Először, a modell koncepciója kerül kidolgozásra az Entitás Adat Modell Tervezővel, az entitások és a kapcsolataik a tervezővel kerülnek létrehozásra, de a leképzést nem jön létre. Az Adatbázis Generáló Varázsló képes legenerálni az adatbázist (SSDL) és a leképzést (MSL) a modell koncepció részeiből és elmenti az eredményt egy edmx fájlba. A varázsló generál egy DDL szkriptet az adatbázis létrehozásához (táblákat, idegen kulcsokkal)[16][17][18]

Ha a modell megváltozik, az Adatbázis Generáló Varázslót érdemes ismét használni a modell és az adatbázis konzisztenciájának fenntartásához. Olyan estekben, a generált DDL script tartalmazza a DROP utasításokat a táblához, a régi SSDL séma szerint, az .edmx fájl alapján, valamint a CREATE utasításokat a táblákhoz, az új SSDL-nek megfelelően, a varázsló által elkészítve a megfelelő részekhez. A Modell Először szemlélet esetén a fejlesztőnek nem ajánlott szerkesztenie az adatbázist és a leképzéseket, mivel az Adatbázis Generátor Varázsló futásainál újra generálodnak a részek minden alkalommal.[16][17][19]

A Visual Studio 2010-ben a Modell Először csakis MS SQL Szerver esetén támogatott.[16] Habár szintén vannak külsős megoldások Oracle, MySQL, és PostgreSQL használatához.[20] Emellett szintén elérhetőek az Entitás Adat Modell Tervezőt és az Adatbázis Generáló Varázslót lecserélő eszközök a Modell Először szemlélet támogatására.[15]

Kód Először[szerkesztés]

A Kód Először a legújabb szemlélet mód az Entity Framework 4.1-től kezdve elérhető. A modell osztályokon keresztül definiált és a konfigurációk a keretrendszer által nyújtott konvenciókon keresztül adhatóak meg.

Adat lekérés[szerkesztés]

Entitás SQL[szerkesztés]

ADO.NET Entitás Keretrendszer egy structured query language változatot használ, amelyet Entitás SQL-nek hívnak, amely deklaratív lekérdezések készítését támogatja és az entitásokon, valamint kapcsolataikon keresztüli frissítéseket – koncepciós szinten. Különbözik az SQL-től mivel nincs direkt alkalmazható joins művelet benne mivel az EDM hivatott az adat absztrakcióra a táblák közt. A koncepciós modell felé történő lekérdezések EntitásKliensosztályok könnyítik , amelyek Entitás SQL lekérdezéseket fogadnak el. A lekérdezés csővezeték feldolgozza az Entitás SQL lekérdezést parancs fává, szétbontva a lekérdezést a különböző táblákra, amelyet az Entitás Kliens kezel. Mint az ADO.NET adat szolgáltatók, egy Entitás Kliens szintén magába foglalja a Connection objektumok használatát, amely a szokványos paraméterek és a hitelesítő információk mellett, tartalmazza a szükséges SDL és leképzés információkat. Az Entitás Kliens kiszolgáló az Entitás SQL utasítás fát az adatbázisnak megfelelő natív SQL lekérdezéssé alakítja. a futás eredményeként egy Entitás SQL ResultSet-et ad, amelyet nem korlátoz a tábla szerű szerkezet, nem úgy mint az ADO.NET ResultSet-ek esetén.

Az Entitás SQL magasabb szintre emeli az SQL-t mivel támogatást ad a:

  • Típus, az ADO.NET Entitások erősen típusosak.
  • EntitásHalmaz (EntitySet), amely entitások gyűjteménye.
  • Komponálhatóság, megszünteti az allekérdezések használata által szabott korlátozásokat.

Entitás SQL Kanonikus Függvények[szerkesztés]

A kanonikus függvények az Entitás Keretrendszer minden verziója támogatja a megfelelő adatbázisokhoz. Felhasználhatóak Entitás SQL lekérdezésekben. Csak úgy, mint ahogy a legtöbb LINQ kiterjesztő metódus is az entitásokban kanonikus függvényekké lesz átalakítva. Függetlenek a felhasznált adatbázis típusától. Amikor az ADO.NET adat kiszolgáló kap egy függvényt, a megfelelő SQL utasítássá rofdítja.[21]

Nem minden DBMS rendelkezik azonos funkcionalitással és azonos függvény halmazzal. Különbség van a számítások pontosságát tekintve is. Éppen ezért, nem minden kanonikus függvény támogatott az összes adatbázisban, és nem mindí adnak a kanonikus függvények azonos eredményt.[22]

Csoport Kanonikus függvények[21]
Aggregáló függvények Avg, BigCount, Count, Max, Min, StDev, StDevP, Sum, Var, VarP
Matematikai függvények Abs, Ceiling, Floor, Power, Round, Truncate
Karakterlánc (String) függvények Concat, Contains, EndsWith, IndexOf, Left, Length, LTrim, Replace, Reverse, Right, RTrim, Substring, StartsWith, ToLower, ToUpper, Trim
Dátum és Idő függvények AddMicroseconds, AddMilliseconds, AddSeconds, AddMinutes, AddHours, AddNanoseconds, AddDays, AddYears, CreateDateTime, AddMonths, CreateDateTimeOffset, CreateTime, CurrentDateTime, CurrentDateTimeOffset, CurrentUtcDateTime, Day, DayOfYear, DiffNanoseconds, DiffMilliseconds, DiffMicroseconds, DiffSeconds, DiffMinutes, DiffHours, DiffDays, DiffMonths, DiffYears, GetTotalOffsetMinutes, Hour, Millisecond, Minute, Month, Second, Truncate, Year
Bitműveleti függvények BitWiseAnd, BitWiseNot, BitWiseOr, BitWiseXor
Egyéb függvények NewGuid

LINQ to Entities[szerkesztés]

A LINQ to Entities szolgáltató lehetővé teszi LINQ használatát különféle RDBMS adat forrásokon. Pár adatbázis kiszolgáló specifikus szolgáltató Entitás Keretrendszer támogatása már elérhető.

Natíve SQL[szerkesztés]

Az Entitás Keretrendszer v4-től kezdve új függvények, az ExecuteStoreQuery() és a ExecuteStoreCommand() kerültek hozzáadásra az ObjectContext osztályhoz.

Vizualizálók[szerkesztés]

Visual Studio rendelkezik egy Vizualizálónak nevezett lehetőséggel. Egy elkészített LINQ lekérdezés a Visual Studio ban megjeleníthetőek natív SQL utasításként a Vizualizálót használva hibakeresési (Debug) módban. Egy LINQ to Entities (Object Query) Vizualizáló minden RDBMS-hez elérhető VisualStudioGallery.

Entitás Keretrendszer ADO.NET szolgáltatói[szerkesztés]

Adatbázis Szolgáltató Neve
Microsoft SQL Server Analysis Services (SSAS) SSAS Entity Framework Provider
DB2 IBM Data Server Provider[halott link]
Caché InterSystems Caché Managed Provider
EffiProz EffiProz ADO.NET Provider
Firebird Firebird ADO.NET Data Provider
Informix IBM Data Server Provider[halott link]
Microsoft SQL Server SqlClient
MySQL Devart dotConnect for MySQL
MySQL Connector/NET
Oracle Oracle Data Provider for .NET (ODP.NET)
DataDirect ADO.NET Data Provider for Oracle
Devart dotConnect for Oracle
PostgreSQL Devart dotConnect for PostgreSQL
Npgsql
SQLite Devart dotConnect for SQLite
System.Data.SQLite
Sybase Sybase iAnywhere Archiválva 2012. február 22-i dátummal a Wayback Machine-ben
Virtuoso Universal Server Virtuoso ADO.Net Provider
VistaDB VistaDB provider

Kapcsolódó szócikkek[szerkesztés]

Jegyzetek[szerkesztés]

  1. ADO .NET Entity Framework Vote of No Confidence
  2. Update on the Entity Framework in .NET 4 and Visual Studio 2010. ADO.NET team blog, 2009. május 11. [2010. január 20-i dátummal az eredetiből archiválva]. (Hozzáférés: 2011. november 1.)
  3. EF4.3.1 and EF5 Beta 1 Available on NuGet. ADO.NET team blog, 2012. február 29. [2012. március 25-i dátummal az eredetiből archiválva]. (Hozzáférés: 2012. március 27.)
  4. CSDL, SSDL, and MSL Specifications, MSDN, <http://msdn.microsoft.com/en-us/library/bb399604.aspx>. Hozzáférés ideje: 2010-12-06
  5. a b Entity Data Model Wizard, MSDN, <http://msdn.microsoft.com/en-us/library/bb399247(VS.100).aspx>. Hozzáférés ideje: 2010-12-06
  6. Kogent Solutions Inc. (2009), ASP.NET 3.5 Black Book, Dreamtech Press, ISBN 81-7722-831-5
  7. Simple Types (EDM), MSDN, <http://msdn.microsoft.com/en-us/library/bb399213(VS.100).aspx>. Hozzáférés ideje: 2010-12-06
  8. ComplexType Element (CSDL), MSDN, <http://msdn.microsoft.com/en-us/library/cc716799(VS.100).aspx>. Hozzáférés ideje: 2010-12-06
  9. OnDelete Element (CSDL), MSDN, <http://msdn.microsoft.com/en-us/library/cc716734(VS.100).aspx>. Hozzáférés ideje: 2010-12-06
  10. Facets (CSDL), MSDN, <http://msdn.microsoft.com/en-us/library/cc716737(VS.100).aspx>. Hozzáférés ideje: 2010-12-06
  11. Creating an Entity Data Model from a Database, MSDN, <http://msdn.microsoft.com/en-us/data/ff191186.aspx>. Hozzáférés ideje: 2010-12-06
  12. ADO.NET Entity Data Model Designer, MSDN, <http://msdn.microsoft.com/en-us/library/cc716685.aspx>. Hozzáférés ideje: 2010-12-06
  13. Update Model Wizard (Entity Data Model Tools), MSDN, <http://msdn.microsoft.com/en-us/library/cc716705.aspx>. Hozzáférés ideje: 2010-12-06
  14. ADO.NET Data Providers for Entity Framework, MSDN, <http://msdn.microsoft.com/en-us/data/dd363565.aspx>. Hozzáférés ideje: 2010-12-06
  15. a b Section Tools in Beginner's Guide to the ADO.NET Entity Framework, MSDN, <http://msdn.microsoft.com/en-us/data/ee712907.aspx>. Hozzáférés ideje: 2010-12-06
  16. a b c Generate Database Wizard (Entity Data Model Tools), MSDN, <http://msdn.microsoft.com/en-us/library/dd456817.aspx>. Hozzáférés ideje: 2010-12-06
  17. a b How to: Generate a Database from a Conceptual Model (Entity Data Model Tools), MSDN, <http://msdn.microsoft.com/en-us/library/dd456815.aspx>. Hozzáférés ideje: 2010-12-06
  18. Creating an Entity Data Model the Model-First Way, MSDN, <http://msdn.microsoft.com/en-us/data/ff628199.aspx>. Hozzáférés ideje: 2010-12-06
  19. Database Generation Rules (Generate Database Wizard), MSDN, <http://msdn.microsoft.com/en-us/library/dd456825.aspx>. Hozzáférés ideje: 2010-12-06
  20. Entity Framework 4 Release Candidate supported, Devart, <http://www.devart.com/blogs/dotconnect/?p=2062>. Hozzáférés ideje: 2010-12-06
  21. a b Canonical Functions (Entity SQL), MSDN, <http://msdn.microsoft.com/en-us/library/bb738626(VS.100).aspx>. Hozzáférés ideje: 2010-03-29
  22. Entity Framework Canonical Functions, Devart, 2010-03-04, <http://www.devart.com/blogs/dotconnect/?p=1161>. Hozzáférés ideje: 2010-03-29

Ajánlott irodalom[szerkesztés]

Külső hivatkozások[szerkesztés]

Fordítás[szerkesztés]

Ez a szócikk részben vagy egészben az ADO.NET Entity Framework című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.