Procedure: Navigeren in relaties met de navigate-operator
In dit onderwerp wordt beschreven hoe u een opdracht uitvoert op basis van een conceptueel model met behulp van een EntityCommand object en hoe u de RefType resultaten ophaalt met behulp van een EntityDataReader.
De code in dit voorbeeld uitvoeren
Voeg het AdventureWorks Sales Model toe aan uw project en configureer uw project om het Entity Framework te gebruiken. Zie De wizard Entiteitsgegevensmodel gebruiken voor meer informatie.
Voeg op de codepagina voor uw toepassing de volgende
using
instructies toe (Imports
in Visual Basic):using System; using System.Collections.Generic; using System.Data; using System.Data.Common; using System.Data.EntityClient; using System.Data.Metadata.Edm;
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
Opmerking
In het volgende voorbeeld ziet u hoe u door relaties in Entity SQL navigeert met behulp van de NAVIGATE-operator . De Navigate
operator gebruikt de volgende parameters: een exemplaar van een entiteit, het relatietype, het einde van de relatie en het begin van de relatie. U kunt eventueel alleen een exemplaar van een entiteit en het relatietype doorgeven aan de Navigate
operator.
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();
}
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