La méthode dbData.Database.SqlQuery<somemodel>
d'Entity Framework Core est obsolète, ce qui crée des difficultés lors de l'exécution de requêtes SQL brutes qui nécessitent à la fois un mappage et un classement des données. Bien que dbData.Product.FromSql("SQL SCRIPT")
soit une option, il lui manque des capacités de mappage de classement.
Versions et solutions EF Core :
EF Core 8 et versions ultérieures : La méthode SqlQuery
renvoie désormais des valeurs scalaires et prend en charge les types arbitraires, rendant les anciennes approches inefficaces.
EF Core 3.0 et versions ultérieures : Les types d'entités sans clé (anciennement appelés types de requêtes) fournissent une solution. Annotez votre classe avec [Keyless]
et utilisez FromSqlRaw
ou FromSql
pour exécuter votre requête et mapper les résultats.
EF Core 2.1 et versions ultérieures : Les types de requêtes offrent une approche viable. Dans votre DbContext
, définissez une propriété DbQuery<T>
(où T
représente le type des valeurs de colonne de votre requête SQL). Ensuite, utilisez la méthode FromSql
comme vous le feriez avec DbSet<T>
.
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!