Nasıl yapılır: Navigate İşleci ile İlişkilerde Gezinme

Bu konuda, bir nesne kullanarak EntityCommand kavramsal modele karşı komut yürütme ve kullanarak sonuçları alma RefType adımları gösterilmektedir EntityDataReader.

Bu örnekteki kodu çalıştırmak için

  1. Projenize AdventureWorks Satış Modeli'ni ekleyin ve projenizi Entity Framework kullanacak şekilde yapılandırın. Daha fazla bilgi için bkz . Nasıl yapılır: Varlık Veri Modeli Sihirbazı'nı kullanma.

  2. Uygulamanızın kod sayfasına aşağıdaki using yönergeleri ekleyin (Imports Visual Basic'te):

    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
    
    

Örnek

Aşağıdaki örnekte NAVIGATE işlecini kullanarak Entity SQL'de ilişkilerde gezinme gösterilmektedir. Navigate işleci şu parametreleri alır: bir varlığın örneği, ilişki türü, ilişkinin sonu ve ilişkinin başlangıcı. İsteğe bağlı olarak, bir varlığın yalnızca bir örneğini ve ilişki türünü Navigate işlece geçirebilirsiniz.

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

Ayrıca bkz.