방법: PrimitiveType 결과를 반환하는 쿼리 실행(EntityClient)
이 항목에서는 EntityCommand를 사용하여 EDM(엔터티 데이터 모델)에 대해 명령을 실행하는 방법 및 EntityDataReader를 사용하여 PrimitiveType 결과를 검색하는 방법의 예제를 제공합니다.
이 예제의 코드를 실행하려면
프로젝트에 AdventureWorks Sales 모델을 추가하고 Entity Framework를 사용하도록 프로젝트를 구성합니다. 이렇게 하려면 다음 중 하나를 수행합니다.
엔터티 데이터 모델 도구가 설치되어 있는 경우 방법: 엔터티 데이터 모델 마법사 사용(Entity Framework)의 절차를 수행합니다.
그렇지 않으면 방법: Entity Framework 프로젝트 수동 구성 및 방법: 엔터티 데이터 모델 수동 정의(Entity Framework)의 절차를 수행합니다.
응용 프로그램의 코드 페이지에서 다음 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;
예제
코드를 테스트하려면 다음 쿼리를 ExecutePrimitiveTypeQuery
함수에 인수로 전달합니다.
"SELECT VALUE AVG(p.ListPrice) FROM AdventureWorksEntities.Product as p"
위의 쿼리는 PrimitiveType 결과를 반환합니다.
Sub ExecutePrimitiveTypeQuery(ByVal esqlQuery As String)
If (esqlQuery.Length = 0) Then
Console.WriteLine("The query string is empty.")
Return
End If
Using conn As EntityConnection = New EntityConnection("name=AdventureWorksEntities")
conn.Open()
Try
' Create an EntityCommand.
Using cmd As EntityCommand = conn.CreateCommand()
cmd.CommandText = esqlQuery
' Execute the command.
Using reader As EntityDataReader = cmd.ExecuteReader(CommandBehavior.SequentialAccess)
Do While (reader.Read())
Dim record As IExtendedDataRecord = CType(reader, IExtendedDataRecord)
' For PrimitiveType
' the record contains exactly one field.
Dim fieldIndex As Integer
fieldIndex = 0
Console.WriteLine("Value: " + record.GetValue(fieldIndex))
Loop
End Using
End Using
Catch ex As Exception
Console.WriteLine(ex.ToString())
End Try
conn.Close()
End Using
End Sub
static void ExecutePrimitiveTypeQuery(string esqlQuery)
{
if (esqlQuery.Length == 0)
{
Console.WriteLine("The query string is empty.");
return;
}
using (EntityConnection conn =
new EntityConnection("name=AdventureWorksEntities"))
{
conn.Open();
try
{
// Create an EntityCommand.
using (EntityCommand cmd = conn.CreateCommand())
{
cmd.CommandText = esqlQuery;
// Execute the command.
using (EntityDataReader rdr =
cmd.ExecuteReader(CommandBehavior.SequentialAccess))
{
// Start reading results.
while (rdr.Read())
{
IExtendedDataRecord record = rdr as IExtendedDataRecord;
// For PrimitiveType
// the record contains exactly one field.
int fieldIndex = 0;
Console.WriteLine("Value: " + record.GetValue(fieldIndex));
}
}
}
}
catch (EntityException ex)
{
Console.WriteLine(ex.ToString());
}
conn.Close();
}
}