Condividi tramite


Procedura: eseguire una query che restituisce risultati PrimitiveType (EntityClient)

In questo argomento viene illustrato come eseguire un comando su un modello concettuale utilizzando un oggetto EntityCommand e viene mostrato come recuperare i risultati di PrimitiveType utilizzando un oggetto EntityDataReader.

Per eseguire il codice in questo esempio

  1. Aggiungere il Modello Sales di AdventureWorks al progetto e configurare il progetto per l'utilizzo di Entity Framework . Per ulteriori informazioni, vedere Procedura: utilizzare la procedura guidata Entity Data Model (Entity Framework).

  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.IO
    Imports System.Data.SqlClient
    Imports System.Data.EntityClient
    Imports System.Data.Metadata.Edm
    
    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;
    

Esempio

In questo esempio viene eseguita una query che restituisce un risultato di un oggetto PrimitiveType. Se si passa la query seguente come argomento nella funzione ExecutePrimitiveTypeQuery, quest'ultima consente di visualizzare il prezzo medio di listino di tutti gli oggetti Products:

SELECT VALUE AVG(p.ListPrice) FROM AdventureWorksEntities.Products as p 

Se si passa una query con parametri, come quella riportata di seguito, gli oggetti EntityParameter vengono aggiunti alla proprietà Parameters nell'oggetto EntityCommand.

CASE WHEN AVG({@score1,@score2,@score3}) < @total THEN TRUE ELSE FALSE END
Private Shared Sub ExecutePrimitiveTypeQuery(ByVal esqlQuery As String)
    If esqlQuery.Length = 0 Then
        Console.WriteLine("The query string is empty.")
        Exit Sub
    End If

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

        ' Create an EntityCommand. 
        Using cmd As EntityCommand = conn.CreateCommand()
            cmd.CommandText = esqlQuery
            ' Execute the command. 
            Using rdr As EntityDataReader = cmd.ExecuteReader(CommandBehavior.SequentialAccess)
                ' Start reading results. 
                While rdr.Read()
                    Dim record As IExtendedDataRecord = TryCast(rdr, IExtendedDataRecord)
                    ' For PrimitiveType 
                    ' the record contains exactly one field. 
                    Dim fieldIndex As Integer = 0
                    Console.WriteLine("Value: " & record.GetValue(fieldIndex))
                End While
            End Using
        End Using
        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();

        // 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));
                }
            }
        }
        conn.Close();
    }
}

Vedere anche

Concetti

Riferimenti a Entity SQL
Provider EntityClient per Entity Framework