EntityClient-provider voor Entity Framework
De EntityClient-provider is een gegevensprovider die door Entity Framework-toepassingen wordt gebruikt voor toegang tot gegevens die in een conceptueel model worden beschreven. Zie Modellering en toewijzing voor meer informatie over conceptuele modellen. EntityClient maakt gebruik van andere .NET Framework-gegevensproviders voor toegang tot de gegevensbron. EntityClient gebruikt bijvoorbeeld de .NET Framework-gegevensprovider voor SQL Server (SqlClient) bij het openen van een SQL Server-database. Zie SqlClient voor het Entity Framework voor informatie over de SqlClient-provider. De EntityClient-provider wordt geïmplementeerd in de System.Data.EntityClient naamruimte.
Verbindingen beheren
Het Entity Framework bouwt voort op opslagspecifieke ADO.NET gegevensproviders door een EntityConnection onderliggende gegevensprovider en relationele database te bieden. Als u een EntityConnection object wilt maken, moet u verwijzen naar een set metagegevens die de benodigde modellen en toewijzingen bevat, en ook naar de naam van een opslagspecifieke gegevensprovider en verbindingsreeks. Nadat de EntityConnection entiteit is ingesteld, kunnen entiteiten worden geopend via de klassen die zijn gegenereerd op basis van het conceptuele model.
U kunt een verbindingsreeks opgeven in het bestand app.config.
De System.Data.EntityClient les bevat ook de EntityConnectionStringBuilder klas. Met deze klasse kunnen ontwikkelaars programmatisch juiste verbindingsreeks s maken en bestaande verbindingsreeks s parseren en herbouwen met behulp van eigenschappen en methoden van de klasse.
Query's maken
De entiteits-SQL-taal is een opslagonafhankelijk dialect van SQL dat rechtstreeks werkt met conceptuele entiteitsschema's en ondersteuning biedt voor concepten van Entity Data Model, zoals overname en relaties. De EntityCommand klasse wordt gebruikt om een entiteits-SQL-opdracht uit te voeren op basis van een entiteitsmodel. Wanneer u objecten maakt EntityCommand , kunt u een opgeslagen procedurenaam of een querytekst opgeven. Het Entity Framework werkt met opslagspecifieke gegevensproviders om algemene entiteits-SQL te vertalen naar opslagspecifieke query's. Zie Entity SQL Language voor meer informatie over het schrijven van Entiteit SQL-query's.
In het volgende voorbeeld wordt een EntityCommand object gemaakt en wordt een Entiteit SQL-querytekst toegewezen aan EntityCommand.CommandText de eigenschap. Deze Entiteit SQL-query vraagt producten op die zijn besteld op basis van de catalogusprijs van het conceptuele model. De volgende code heeft helemaal geen kennis van het opslagmodel.
EntityCommand cmd = conn.CreateCommand();
cmd.CommandText = @"SELECT VALUE p
FROM AdventureWorksEntities.Product AS p
ORDER BY p.ListPrice";
Query's uitvoeren
Wanneer een query wordt uitgevoerd, wordt deze geparseerd en geconverteerd naar een canonieke opdrachtstructuur. Alle volgende verwerkingen worden uitgevoerd in de opdrachtstructuur. De opdrachtstructuur is het communicatiemiddel tussen de System.Data.EntityClient en de onderliggende .NET Framework-gegevensprovider, zoals System.Data.SqlClient.
De EntityDataReader resultaten van het uitvoeren van een EntityCommand model op basis van een conceptueel model worden weergegeven. Als u de opdracht wilt uitvoeren die de opdracht retourneert, roept u ExecuteReaderaanEntityDataReader. De EntityDataReader implementaties IExtendedDataRecord om uitgebreide gestructureerde resultaten te beschrijven.
Transacties beheren
In Entity Framework zijn er twee manieren om transacties te gebruiken: automatisch en expliciet. Automatische transacties maken gebruik van de System.Transactions naamruimte en expliciete transacties maken gebruik van de EntityTransaction klasse.
Als u gegevens wilt bijwerken die beschikbaar zijn via een conceptueel model, raadpleegt u Hoe kunt u transacties beheren in het Entity Framework.
In dit gedeelte
Procedure: Een query uitvoeren die PrimitieveType-resultaten retourneert
Procedure: Een query uitvoeren die structureletyperesultaten retourneert
Procedure: Een query uitvoeren die refType-resultaten retourneert
Procedure: Een query uitvoeren die complexe typen retourneert
Procedure: Een query uitvoeren die geneste verzamelingen retourneert
Procedure: Een geparameteriseerde entiteits-SQL-query uitvoeren met EntityCommand
Procedure: Een opgeslagen procedure met parameters uitvoeren met EntityCommand
Procedure: Een polymorfe query uitvoeren
Procedure: Navigeren in relaties met de navigate-operator