38.5 SQL-Direktabfragen
Nun kennen Sie bereits mehrere Varianten, um eine Abfrage gegen eine Datenbank abzusetzen und das Ergebnis zu materialisieren. Das ist aber immer noch nicht alles. Tatsächlich können Sie sogar ein datenbankspezifisches SQL-Statement absetzen.
Zum Absetzen eines SQL-Statements stellt die Klasse ObjectContext drei Methoden bereit, die Sie der folgenden Tabelle entnehmen können.
Methode | Beschreibung |
Diese Methode führt einen SQL-Befehl aus, der auch Parameter enthalten kann. Der Rückgabewert der Methode beschreibt die Anzahl der Datensätze, die von dem Befehl erfasst worden sind. Die Methode dient zur Ausführung von Befehlen, die keine Ergebnismenge liefern, eignet sich daher für INSERT, DELETE und UPDATE. ExecuteStoreCommand ähnelt somit der Methode ExecuteNonQuery der Klasse DbCommand. |
|
Diese Methode ist das Gegenstück zur Methode ExecuteReader der Klasse DbCommand und liefert typisierte Ergebnisse zurück. |
|
Diese Methode übersetzt ein DbDataReader-Objekt in Objekte des angeforderten Entitätstyps. |
In Listing 38.28 wird gezeigt, wie Sie die Methode ExecuteStoreQuery einsetzen können, um bestimmte Produkte mit einem T-SQL-Statement aus der Datenbank abzurufen.
using (NorthwindEntities context = new NorthwindEntities())
{
Console.Write("Preise ab ... ");
decimal price = Convert.ToDecimal(Console.ReadLine());
var query = context.ExecuteStoreQuery<Product>(
"SELECT * FROM Products WHERE UnitPrice > @price",
new object[] {new SqlParameter("@price", price)});
foreach (var item in query)
Console.WriteLine(item.ProductName);
}
Listing 38.28 Absetzen eines T-SQL-Statements mit der Methode »ExecuteStoreQuery«
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.