Så här kör du en fråga som returnerar PrimitiveType-resultat
Det här avsnittet visar hur du kör ett kommando mot en konceptmodell med hjälp av en EntityCommand, och hur du hämtar PrimitiveType resultatet med hjälp av en EntityDataReader.
Så här kör du koden i det här exemplet
Lägg till AdventureWorks-försäljningsmodellen i projektet och konfigurera projektet så att det använder Entity Framework. Mer information finns i Så här använder du guiden Entitetsdatamodell.
På kodsidan för ditt program lägger du till följande
using
direktiv (Imports
i Visual Basic):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;
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
Exempel
Det här exemplet kör en fråga som returnerar ett PrimitiveType resultat. Om du skickar följande fråga som ett argument till ExecutePrimitiveTypeQuery
funktionen visar funktionen det genomsnittliga listpriset för alla Products
:
SELECT VALUE AVG(p.ListPrice) FROM AdventureWorksEntities.Products as p
Om du skickar en parametriserad fråga, som följande, EntityParameter objekt till Parameters egenskapen på EntityCommand objektet.
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