Exécuter des requêtes SQL brutes dans Entity Framework Core sans DbSet
Dans Entity Framework Core, il devient plus difficile d'exécuter des requêtes SQL brutes qui ne reposent pas sur des DbSets. La méthode traditionnelle dbData.Database.SqlQuery<somemodel>
a été supprimée et les développeurs doivent trouver d'autres moyens de récupérer des données à l'aide de requêtes SQL.
EF Core 8 et supérieur
EF Core 8 introduit la méthode SqlQuery
, qui prend en charge le renvoi de valeurs scalaires et de types arbitraires à partir de requêtes SQL brutes. Cette méthode vous permet d'exécuter directement une requête SQL et de mapper les résultats au type requis.
EF Core 3.0
Avec EF Core 3.0, les types d’entités sans clé (anciennement types de requête) peuvent être utilisés. Ces types ne sont pas mappés à des tables de base de données spécifiques, ce qui permet une récupération arbitraire des données. Pour définir un type d'entité sans clé, utilisez l'annotation de données [Keyless]
ou la méthode HasNoKey()
dans la configuration de votre modèle.
EF Core 2.1
Dans EF Core 2.1 Release Candidate 1, des types de requêtes ont été introduits. Ces types sont utilisés comme types de retour pour les requêtes FromSql()
temporaires qui correspondent à des vues de base de données ou à des tables qui n'ont pas de clé primaire. Définissez un attribut DbQuery<t>
dans votre DbContext pour représenter le type de requête, puis utilisez la méthode FromSql
pour exécuter la requête.
Exemple :
<code>public DbQuery<somemodel> SomeModels { get; set; } var result = context.SomeModels.FromSql("SQL_SCRIPT").ToList();</somemodel></code>
Résumé
Ces méthodes offrent différentes manières d'exécuter des requêtes SQL brutes dans Entity Framework Core sans recourir à un DbSet. Choisissez la méthode qui correspond le mieux à vos besoins spécifiques et à votre version d’EF Core.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!