Megosztás a következőn keresztül:


Útmutató: Primitívtípus-eredményeket visszaadó lekérdezés végrehajtása

Ez a témakör bemutatja, hogyan hajthat végre parancsokat egy fogalmi modellen egy EntityCommandhasználatával, és hogyan kérdezheti le az PrimitiveType eredményeket egy EntityDataReader.

A kód futtatása ebben a példában

  1. Adja hozzá az AdventureWorks értékesítési modelljét a projekthez, és konfigurálja a projektet az Entity Framework használatára. További információ : Útmutató: Az Entitásadatmodell varázsló használata.

  2. Az alkalmazás kódlapján adja hozzá a következő using irányelveket (Imports a Visual Basicben):

    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Data.Common;
    using System.Data.EntityClient;
    using System.Data.Metadata.Edm;
    
    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
    
    

Példa

Ez a példa egy eredményt visszaadó lekérdezést PrimitiveType hajt végre. Ha a következő lekérdezést adja át argumentumként a ExecutePrimitiveTypeQuery függvénynek, a függvény az összes Productslistaárat jeleníti meg:

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

Ha paraméteres lekérdezést ad át, például az alábbiakat, EntityParameter akkor az objektumok az Parameters objektum tulajdonságához EntityCommand lesznek átadva.

CASE WHEN AVG({@score1,@score2,@score3}) < @total THEN TRUE ELSE FALSE END
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();
    }
}
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

Lásd még