Condividi tramite


Procedura: eseguire una query Entity SQL con parametri utilizzando EntityCommand (EntityClient)

In questo argomento viene fornito un esempio di esecuzione di una query Entity SQL con parametri tramite EntityCommand.

Per eseguire il codice in questo esempio

  1. Aggiungere il modello Sales di Adventure Works al progetto e configurare il progetto per l'utilizzo di Entity Framework. A tale scopo, effettuare una delle operazioni seguenti:

  2. Nella tabella codici per l'applicazione aggiungere le istruzioni using seguenti (Imports in Visual Basic):

    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;
    

Esempio

Nell'esempio seguente viene illustrato come costruire una stringa di query con due parametri. Viene quindi creato un oggetto EntityCommand, vengono aggiunti due parametri all'insieme EntityParameter di EntityCommand e viene scorso l'insieme di elementi Contact.

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();
}

Vedere anche

Attività

Procedura: eseguire una query con parametri (Entity Framework)

Concetti

Linguaggio Entity SQL

Altre risorse

Utilizzo di EntityClient (attività di Entity Framework)