Sdílet prostřednictvím


Zprostředkovatel EntityClient pro Entity Framework

Zprostředkovatel EntityClient je zprostředkovatel dat používaný aplikacemi Entity Framework pro přístup k datům popsaným v konceptuálním modelu. Informace o koncepčních modelech najdete v tématu Modelování a mapování. EntityClient používá pro přístup ke zdroji dat další zprostředkovatele dat rozhraní .NET Framework. EntityClient například používá rozhraní .NET Framework Zprostředkovatel dat pro SQL Server (SqlClient) při přístupu k databázi SQL Serveru. Informace o poskytovateli SqlClient naleznete v tématu SqlClient pro Entity Framework. Zprostředkovatel EntityClient se implementuje v System.Data.EntityClient oboru názvů.

Správa připojení

Entity Framework vychází z ADO.NET zprostředkovatelů dat specifických pro úložiště tím, že poskytuje EntityConnection podkladovému poskytovateli dat a relační databázi. Pokud chcete vytvořit EntityConnection objekt, musíte odkazovat na sadu metadat, která obsahují potřebné modely a mapování, a také název zprostředkovatele dat specifický pro úložiště a připojovací řetězec. Jakmile jsou entity EntityConnection na místě, lze k entitám přistupovat prostřednictvím tříd vygenerovaných z konceptuálního modelu.

V souboru app.config můžete zadat připojovací řetězec.

Zahrnuje System.Data.EntityClient také EntityConnectionStringBuilder třídu. Tato třída umožňuje vývojářům programově vytvářet syntakticky správné připojovací řetězec a parsovat a znovu sestavit existující připojovací řetězec pomocí vlastností a metod třídy.

Vytváření dotazů

Jazyk Entity SQL je dialekt SQL nezávislý na úložišti, který pracuje přímo se schématy konceptu entit a podporuje koncepty modelu Entity Data Model, jako je dědičnost a vztahy. Třída EntityCommand se používá ke spuštění příkazu Entity SQL pro model entity. Při vytváření EntityCommand objektů můžete zadat název uložené procedury nebo text dotazu. Entity Framework pracuje s zprostředkovateli dat specifických pro úložiště a překládá obecné entity SQL do dotazů specifických pro úložiště. Další informace o psaní dotazů Entity SQL naleznete v tématu Entity SQL Language.

Následující příklad vytvoří EntityCommand objekt a přiřadí text dotazu Entity SQL k jeho EntityCommand.CommandText vlastnosti. Tento dotaz Entity SQL vyžaduje produkty seřazené podle ceníkové ceny z konceptuálního modelu. Následující kód vůbec nemá žádné znalosti o modelu úložiště.

EntityCommand cmd = conn.CreateCommand();
cmd.CommandText = @"SELECT VALUE p
 FROM AdventureWorksEntities.Product AS p
 ORDER BY p.ListPrice";

Provádění dotazů

Při spuštění dotazu se parsuje a převede na kanonický strom příkazů. Veškeré následné zpracování se provádí ve stromu příkazů. Příkazový strom je způsob komunikace mezi System.Data.EntityClient poskytovatelem dat rozhraní .NET Framework a podkladovým poskytovatelem dat rozhraní .NET Framework, například System.Data.SqlClient.

Zpřístupňuje EntityDataReader výsledky provedení konceptuálního EntityCommand modelu. Spuštění příkazu, který vrátí EntityDataReadervolání ExecuteReader. Implementuje EntityDataReader popis bohatých strukturovaných IExtendedDataRecord výsledků.

Správa transakcí

V Entity Framework existují dva způsoby použití transakcí: automatické a explicitní. Automatické transakce používají System.Transactions obor názvů a explicitní transakce používají EntityTransaction třídu.

Pokud chcete aktualizovat data, která jsou vystavená prostřednictvím konceptuálního modelu, přečtěte si téma Postupy: Správa transakcí v Entity Frameworku.

V tomto oddílu

Postup: Provedení dotazu, který vrátí výsledky typu PrimitiveType

Postup: Provedení dotazu, který vrátí výsledky typu StructuralType

Postup: Provedení dotazu, který vrátí výsledky typu RefType

Postup: Provedení dotazu, který vrátí komplexní typy

Postup: Provedení dotazu, který vrátí vnořené kolekce

Postupy: Spuštění parametrizovaného dotazu Entity SQL pomocí EntityCommand

Postupy: Spuštění parametrizované uložené procedury pomocí EntityCommand

Postup: Spuštění polymorfního dotazu

Postupy: Procházení relací pomocí navigačního operátoru

Viz také