Procédure : explorer des relations à l'aide de l'opérateur Navigate (EntityClient)
Cette rubrique montre comment exécuter une commande sur un modèle conceptuel en utilisant un objet EntityCommand et comment récupérer les résultats de RefType en utilisant EntityDataReader.
Pour exécuter le code de cet exemple
Ajoutez le Modèle de vente AdventureWorks Sales Model à votre projet et configurez votre projet pour utiliser Entity Framework . Pour plus d'informations, consultez Procédure : utiliser l'Assistant Entity Data Model (Entity Framework).
Dans la page de codes de votre application, ajoutez les instructions using (Imports en Visual Basic) suivantes :
Imports System Imports System.Collections.Generic Imports System.Collections Imports System.Data.Common Imports System.Data Imports System.IO Imports System.Data.SqlClient Imports System.Data.EntityClient Imports System.Data.Metadata.Edm
using System; using System.Collections.Generic; using System.Collections; using System.Data.Common; using System.Data; using System.IO; using System.Data.SqlClient; using System.Data.EntityClient; using System.Data.Metadata.Edm;
Exemple
L'exemple ci-dessous montre comment explorer des relations dans Entity SQL à l'aide de l'opérateur NAVIGATE (Entity SQL). L'opérateur Navigate accepte les paramètres suivants : une instance d'une entité, le type de relation, la fin de la relation et le début de la relation. Éventuellement, vous pouvez passer uniquement une instance d'une entité et le type de relation à l'opérateur Navigate.
Using conn As New EntityConnection("name=AdventureWorksEntities")
conn.Open()
' Create an EntityCommand.
Using cmd As EntityCommand = conn.CreateCommand()
' Create an Entity SQL query.
Dim esqlQuery As String = "SELECT address.AddressID, (SELECT VALUE DEREF(soh) FROM " & _
" NAVIGATE(address, AdventureWorksModel.FK_SalesOrderHeader_Address_BillToAddressID) " & _
" AS soh) FROM AdventureWorksEntities.Addresses AS address"
cmd.CommandText = esqlQuery
' Execute the command.
Using rdr As DbDataReader = cmd.ExecuteReader(CommandBehavior.SequentialAccess)
' Start reading.
While rdr.Read()
Console.WriteLine(rdr("AddressID"))
End While
End Using
End Using
conn.Close()
End Using
using (EntityConnection conn =
new EntityConnection("name=AdventureWorksEntities"))
{
conn.Open();
// Create an EntityCommand.
using (EntityCommand cmd = conn.CreateCommand())
{
// Create an Entity SQL query.
string esqlQuery =
@"SELECT address.AddressID, (SELECT VALUE DEREF(soh) FROM
NAVIGATE(address, AdventureWorksModel.FK_SalesOrderHeader_Address_BillToAddressID)
AS soh) FROM AdventureWorksEntities.Addresses AS address";
cmd.CommandText = esqlQuery;
// Execute the command.
using (DbDataReader rdr = cmd.ExecuteReader(CommandBehavior.SequentialAccess))
{
// Start reading.
while (rdr.Read())
{
Console.WriteLine(rdr["AddressID"]);
}
}
}
conn.Close();
}
Voir aussi
Concepts
Fournisseur EntityClient pour Entity Framework
Langage Entity SQL