|
|
Publié sur 19/02/2021 14:00:14
|
|
|
|

Avec Entity Framework Core, vous pouvez passer à la requête SQL originale lorsque vous utilisez une base de données relationnelle. Lorsque la requête requise ne peut pas être représentée dans LINQ, la requête SQL brute peut être utilisée. Vous pouvez aussi utiliser des requêtes SQL brutes si l’utilisation des requêtes LINQ cause des requêtes SQL inefficaces. La requête SQL brute peut retourner un type d’entité générique ou un type d’entité sans clé dans le modèle.
Récapitulatif : exécution d’instructions SQL et de procédures stockées avec Entity Framework (EF).
Effectuer des requêtes, mises à jour et suppressions d’instructions SQL, et invoquer des procédures stockées et des vues en utilisant les méthodes suivantes :
- FromSqlRaw
- FromSqlInterpolated
- ExecuteSqlRaw
- ExecuteSqlInterpolated
FromSqlRaw et FromSqlInterpolated sont principalement utilisés pour les opérations de requête ExecuteSqlRaw et ExecuteSqlInterpolated effectuent des opérations d’ajout, de mise à jour et de suppression sur la base de données, et retournent le nombre de lignes concernées
La fin est un mot-clé interpolé, qui est généralement une addition, suppression, modification et vérification de paramètres, et une méthode pour résister aux attaques d’injection SQL en utilisant la syntaxe d’interpolation de chaînes. Par exemple :
En sortant une instruction SQL, les conditions de requête ne sont pas transmises par le splicing, comme montré dans la figure ci-dessous :
Il y a quelques limitations à surveiller lors de l’utilisation de requêtes SQL natives :
Les requêtes SQL doivent retourner les données pour tous les attributs du type d’entité. Les noms des colonnes dans l’ensemble de résultats doivent correspondre aux noms des colonnes auxquels les attributs sont mappés. Notez que ce comportement diffère de celui de EF6. La relation de correspondance attribut/colonne de la requête SQL originale est ignorée dans EF6, et les noms des colonnes de l’ensemble de résultats doivent correspondre aux noms des attributs. Les requêtes SQL ne peuvent pas contenir les données associées. Cependant, dans de nombreux cas, vous pouvez utiliser la méthode Inclure immédiatement après la requête pour retourner des données corrélées (voir Inclure des données associatives).
(Fin)
|
Précédent:EF Core Série 4 examine les instructions SQL généréesProchain:Fiddler remplace les liens, demande des redirections
|