다음을 통해 공유


방법: EntityCommand를 사용하여 매개 변수가 있는 Entity SQL 쿼리 실행(EntityClient)

이 항목에서는 EntityCommand를 사용하여 매개 변수가 있는 Entity SQL 쿼리를 실행하는 방법의 예제를 제공합니다.

이 예제의 코드를 실행하려면

  1. 프로젝트에 AdventureWorks Sales 모델을 추가하고 Entity Framework를 사용하도록 프로젝트를 구성합니다. 이렇게 하려면 다음 중 하나를 수행합니다.

  2. 응용 프로그램의 코드 페이지에서 다음 using 문(Visual Basic에서는 Imports)을 추가합니다.

    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;
    

예제

다음 예제에서는 두 개의 매개 변수가 있는 쿼리 문자열을 생성하는 방법을 보여 줍니다. 그런 다음 EntityCommand를 만들고 두 매개 변수를 이 EntityCommandEntityParameter 컬렉션에 추가한 후 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();
}

참고 항목

작업

방법: 매개 변수가 있는 쿼리 실행(Entity Framework)

개념

Entity SQL 언어

기타 리소스

EntityClient 사용(Entity Framework 작업)