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 | forrásszöveg szerkesztése]

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-ediké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ó, a 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 | forrásszöveg szerkesztése]

ADO.NET Entitás Keretrendszer architektúrája, alulról lentről felfele, az alábbiakból áll össze:

  • Adatforrás specifikus kiszolgálók, amely absztrachálja a ADO.NET felületeket használ 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ás fát lekérdezésekké az adatbázis natív SQL nyelvének megfelelően. Ez magába foglalja A tároló függő hidat, az a komponens amely felelős a generikus utasítás fák fordításáért, tároló függő utasítás fákká.
  • 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ézetekez, 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, folyamat lekérdezések, filterek és frissítés kérelmek hogy átalakítítsa őket kanonikus utasítás fákká, amelyek 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 össze entitáshoz rendelt metaadatot, kapcsolatokat és leképezéseket.
  • Tranzakciók, elérhetővé teszi 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 A 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 EntitySetsek ként adja vissza a végeredményt.
  • Kapcsolat nélküli/leválasztott komponensek, helyileg tárolja az adathalmazt és az entitás halamzokat, hogy kihasználja az ADO.NET entitás Keretrendszer lehetőségeit egy alkalmanként csatlakozó környezetben.
    • Beágyazott adatbázis: ADO.NET Entitás Keretrendszer magába 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, Mint a Leképezés Tervező, ezek szintén beépítettek a ADO.NET Entitás Keretrendszerbe amely egyszerűsít a leképezéseken végzett feladatokat egy koncepciós sémából egy relációs sémába és meghatározza, hogy mely tulajdonságai az entitás típusnak, mely táblához tartoznak az adatbázisban.
  • Programozási réteg, kiajánlja az EDM-et mint programozási konstrukciót amely felhasználható a programozási nyelveken.
    • Objektum szolgáltatások, automatikusan generálja a kódot CLR osztályokhoz amelyek az entitásnak megfelelő tulajdonságokkal rendelkezik, ezzel lehetővé téve az entitások .NET objektumok ként való példányosítását.
    • Web szolgáltatások, kiajánlja az entitásokat mint web szolgáltatás.
  • 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 | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

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 visszasna 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 objektumok ké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 átvitaelekhez.[6]

Entitások[szerkesztés | forrásszöveg szerkesztése]

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 átal 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évterek és és entitás típus 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 typusok (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 | forrásszöveg szerkesztése]

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ét irányú kapcsolat ké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 | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

Adatbázist Először[szerkesztés | forrásszöveg szerkesztése]

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öt 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 | forrásszöveg szerkesztése]

Az új, Modell Először szemlélet a Visual Studio 2010ben 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 sctipt 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 | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

Entitás SQL[szerkesztés | forrásszöveg szerkesztése]

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énye ké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 | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

Adatbázis Szolgáltató Neve
Microsoft SQL Server Analysis Services (SSAS) SSAS Entity Framework Provider
DB2 IBM Data Server Provider
Caché InterSystems Caché Managed Provider
EffiProz EffiProz ADO.NET Provider
Firebird Firebird ADO.NET Data Provider
Informix IBM Data Server Provider
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
Virtuoso Universal Server Virtuoso ADO.Net Provider
VistaDB VistaDB provider

Lásd Még[szerkesztés | forrásszöveg szerkesztése]

Jegyzetek[szerkesztés | forrásszöveg szerkesztése]

  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. (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. (Hozzáférés: 2012. március 27.)
  4. CSDL, SSDL, and MSL Specifications, MSDN, <http://msdn.microsoft.com/en-us/library/bb399604.aspx>. Retrieved on 2010-12-06
  5. ^ a b Entity Data Model Wizard, MSDN, <http://msdn.microsoft.com/en-us/library/bb399247(VS.100).aspx>. Retrieved on 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>. Retrieved on 2010-12-06
  8. ComplexType Element (CSDL), MSDN, <http://msdn.microsoft.com/en-us/library/cc716799(VS.100).aspx>. Retrieved on 2010-12-06
  9. OnDelete Element (CSDL), MSDN, <http://msdn.microsoft.com/en-us/library/cc716734(VS.100).aspx>. Retrieved on 2010-12-06
  10. Facets (CSDL), MSDN, <http://msdn.microsoft.com/en-us/library/cc716737(VS.100).aspx>. Retrieved on 2010-12-06
  11. Creating an Entity Data Model from a Database, MSDN, <http://msdn.microsoft.com/en-us/data/ff191186.aspx>. Retrieved on 2010-12-06
  12. ADO.NET Entity Data Model Designer, MSDN, <http://msdn.microsoft.com/en-us/library/cc716685.aspx>. Retrieved on 2010-12-06
  13. Update Model Wizard (Entity Data Model Tools), MSDN, <http://msdn.microsoft.com/en-us/library/cc716705.aspx>. Retrieved on 2010-12-06
  14. ADO.NET Data Providers for Entity Framework, MSDN, <http://msdn.microsoft.com/en-us/data/dd363565.aspx>. Retrieved on 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>. Retrieved on 2010-12-06
  16. ^ a b c Generate Database Wizard (Entity Data Model Tools), MSDN, <http://msdn.microsoft.com/en-us/library/dd456817.aspx>. Retrieved on 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>. Retrieved on 2010-12-06
  18. Creating an Entity Data Model the Model-First Way, MSDN, <http://msdn.microsoft.com/en-us/data/ff628199.aspx>. Retrieved on 2010-12-06
  19. Database Generation Rules (Generate Database Wizard), MSDN, <http://msdn.microsoft.com/en-us/library/dd456825.aspx>. Retrieved on 2010-12-06
  20. Entity Framework 4 Release Candidate supported, Devart, <http://www.devart.com/blogs/dotconnect/?p=2062>. Retrieved on 2010-12-06
  21. ^ a b Canonical Functions (Entity SQL), MSDN, <http://msdn.microsoft.com/en-us/library/bb738626(VS.100).aspx>. Retrieved on 2010-03-29
  22. Entity Framework Canonical Functions, Devart, 2010-03-04, <http://www.devart.com/blogs/dotconnect/?p=1161>. Retrieved on 2010-03-29

Ajánlott Irodalom[szerkesztés | forrásszöveg szerkesztése]

Külső Hivatkozások[szerkesztés | forrásszöveg szerkesztése]

Fordítás[szerkesztés | forrásszöveg szerkesztése]

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.