Nasıl yapılır: EntityCommand Kullanarak Parametreli Varlık SQL Sorgusu Yürütme

Bu konu, bir nesne kullanarak parametreleri olan bir EntityCommand Entity SQL sorgusu yürütmeyi gösterir.

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 deyimleri ekleyin (Imports Visual Basic'te):

    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;
    
    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, iki parametreyle bir sorgu dizesinin nasıl yapılacağı gösterilmektedir. Ardından bir EntityCommandoluşturur, bu EntityCommandkoleksiyonuna EntityParameter iki parametre ekler ve öğe koleksiyonunda Contact yinelenir.

using (EntityConnection conn =
    new EntityConnection("name=AdventureWorksEntities"))
{
    conn.Open();
    // Create a query that takes two parameters.
    string esqlQuery =
        @"SELECT VALUE Contact FROM AdventureWorksEntities.Contacts
                    AS Contact WHERE Contact.LastName = @ln AND
                    Contact.FirstName = @fn";

    using (EntityCommand cmd = new EntityCommand(esqlQuery, conn))
    {
        // Create two parameters and add them to
        // the EntityCommand's Parameters collection
        EntityParameter param1 = new EntityParameter();
        param1.ParameterName = "ln";
        param1.Value = "Adams";
        EntityParameter param2 = new EntityParameter();
        param2.ParameterName = "fn";
        param2.Value = "Frances";

        cmd.Parameters.Add(param1);
        cmd.Parameters.Add(param2);

        using (DbDataReader rdr = cmd.ExecuteReader(CommandBehavior.SequentialAccess))
        {
            // Iterate through the collection of Contact items.
            while (rdr.Read())
            {
                Console.WriteLine(rdr["FirstName"]);
                Console.WriteLine(rdr["LastName"]);
            }
        }
    }
    conn.Close();
}
Using conn As New EntityConnection("name=AdventureWorksEntities")
    conn.Open()
    ' Create a query that takes two parameters. 
    Dim esqlQuery As String = "SELECT VALUE Contact FROM AdventureWorksEntities.Contacts " & _
        " AS Contact WHERE Contact.LastName = @ln AND Contact.FirstName = @fn"

    Using cmd As New EntityCommand(esqlQuery, conn)
        ' Create two parameters and add them to 
        ' the EntityCommand's Parameters collection 
        Dim param1 As New EntityParameter()
        param1.ParameterName = "ln"
        param1.Value = "Adams"
        Dim param2 As New EntityParameter()
        param2.ParameterName = "fn"
        param2.Value = "Frances"

        cmd.Parameters.Add(param1)
        cmd.Parameters.Add(param2)

        Using rdr As DbDataReader = cmd.ExecuteReader(CommandBehavior.SequentialAccess)
            ' Iterate through the collection of Contact items. 
            While rdr.Read()
                Console.WriteLine(rdr("FirstName"))
                Console.WriteLine(rdr("LastName"))
            End While
        End Using
    End Using
    conn.Close()
End Using

Ayrıca bkz.