Freigeben über


Gewusst wie: Ausführen einer parametrisierten Entity SQL-Abfrage mithilfe von EntityCommand (EntityClient)

In diesem Thema wird anhand eines Beispiels gezeigt, wie eine Entity SQL-Abfrage mit Parametern mithilfe von EntityCommand ausgeführt wird.

So führen Sie den Code in diesem Beispiel aus

  1. Fügen Sie das AdventureWorks Sales-Modell dem Projekt hinzu, und konfigurieren Sie das Projekt für die Verwendung von Entity Framework. Gehen Sie dazu folgendermaßen vor:

  2. Fügen Sie der Codepage Ihrer Anwendung die folgenden using-Anweisungen (Imports in Visual Basic) hinzu:

    Imports System
    Imports System.Collections.Generic
    Imports System.Collections
    Imports System.Data.Common
    Imports System.Data
    Imports System.Data.SqlClient
    Imports System.Data.EntityClient
    Imports System.Data.Metadata.Edm
    Imports System.IO
    ' Add AdventureWorksModel prepended with the root namespace for the project.
    'Imports ProjectName.AdventureWorksModel
    
    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 AdventureWorksModel;
    using System.Data.Metadata.Edm;
    

Beispiel

Das folgende Beispiel zeigt, wie eine Abfragezeichenfolge mit zwei Parametern konstruiert wird. Zunächst wird ein EntityCommand erstellt, dann werden der EntityParameter-Auflistung dieses EntityCommand zwei Parameter hinzugefügt, und schließlich wird die Auflistung von Contact-Elementen durchlaufen.

Using conn As EntityConnection = New EntityConnection("name=AdventureWorksEntities")
    conn.Open()

    ' Create a query that takes two parameters.
    Dim esqlQuery As String = "SELECT VALUE Contact FROM AdventureWorksEntities.Contact " & _
        "AS Contact WHERE Contact.LastName = @ln AND " & _
        "Contact.FirstName = @fn"

    Try
        Using cmd As EntityCommand = 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.
                Do While rdr.Read
                    Console.WriteLine(rdr.Item("FirstName"))
                    Console.WriteLine(rdr.Item("LastName"))
                Loop
            End Using
        End Using
    Catch ex As EntityException
        Console.WriteLine(ex.ToString())
    End Try
    conn.Close()
End Using
using (EntityConnection conn =
    new EntityConnection("name=AdventureWorksEntities"))
{
    conn.Open();
    // Create a query that takes two parameters.
    string esqlQuery =
        @"SELECT VALUE Contact FROM AdventureWorksEntities.Contact 
                    AS Contact WHERE Contact.LastName = @ln AND
                    Contact.FirstName = @fn";

    try
    {
        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"]);
                }
            }
        }
    }
    catch (EntityException ex)
    {
        Console.WriteLine(ex.ToString());
    }
    conn.Close();
}

Siehe auch

Aufgaben

Gewusst wie: Ausführen einer parametrisierten Abfrage (Entity Framework)

Konzepte

Entity SQL-Sprache

Weitere Ressourcen

Arbeiten mit EntityClient (Entity Framework-Aufgaben)