|
|
Veröffentlicht am 19.02.2021 14:00:14
|
|
|
|

Mit Entity Framework Core kann man bei Verwendung einer relationalen Datenbank auf die ursprüngliche SQL-Abfrage zurückgreifen. Wenn die erforderliche Abfrage in LINQ nicht dargestellt werden kann, kann die rohe SQL-Abfrage verwendet werden. Man kann auch rohe SQL-Abfragen verwenden, wenn die Nutzung von LINQ-Abfragen zu ineffizienten SQL-Abfragen führt. Die rohe SQL-Abfrage kann einen generischen Entitätstyp oder einen schlüssellosen Entitätstyp im Modell zurückgeben.
Zusammenfassung: Ausführung von SQL-Anweisungen und gespeicherten Prozeduren mit dem Entity Framework (EF).
Führen Sie SQL-Anweisungsabfragen, Aktualisierungen und Löschungen durch und rufen Sie gespeicherte Prozeduren und Ansichten mit den folgenden Methoden auf:
- FromSqlRaw
- FromSqlInterpolated
- ExecuteSqlRaw
- ExecuteSqlInterpolated
FromSqlRaw und FromSqlInterpolated werden hauptsächlich für Abfrageoperationen verwendet ExecuteSqlRaw und ExecuteSqlInterpolated führen Hinzufügen-, Aktualisierungs- und Löschoperationen auf der Datenbank durch und geben die Anzahl der betroffenen Zeilen zurück
Das Ende ist ein interpoliertes Schlüsselwort, das üblicherweise eine Parameterzufügung, Löschung, Änderung und Überprüfung sowie eine Möglichkeit ist, SQL-Injektionsangriffe mittels String-Interpolationssyntax abzuwehren. Zum Beispiel:
Geben Sie eine SQL-Anweisung aus, werden die Abfragebedingungen nicht durch das Splicing geleitet, wie in der untenstehenden Abbildung gezeigt:
Es gibt einige Einschränkungen, die man beachten sollte, wenn man native SQL-Abfragen verwendet:
SQL-Abfragen müssen Daten für alle Attribute des Entitätstyps zurückgeben. Die Spaltennamen im Ergebnisset müssen mit den Spaltennamen übereinstimmen, denen die Attribute zugeordnet sind. Beachten Sie, dass dieses Verhalten sich von EF6 unterscheidet. Die Attribut-/Spaltenabordnungsbeziehung der ursprünglichen SQL-Abfrage wird in EF6 ignoriert, und die Spaltennamen der Ergebnismenge müssen mit den Attributnamen übereinstimmen. SQL-Abfragen können keine zugehörigen Daten enthalten. In vielen Fällen können Sie jedoch die Include-Methode unmittelbar nach der Abfrage verwenden, um korrelierte Daten zurückzugeben (siehe Include Associative Data).
(Ende)
|
Vorhergehend:EF Core Series 4 betrachtet die generierten SQL-AnweisungenNächster:Fiddler ersetzt Links, fordert Weiterleitungen an
|