Maison >développement back-end >C++ >Comment puis-je exécuter des requêtes SQL brutes avec un classement dans le noyau de Framework Entity sans utiliser DBSET?

Comment puis-je exécuter des requêtes SQL brutes avec un classement dans le noyau de Framework Entity sans utiliser DBSET?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-27 01:11:08240parcourir

How Can I Execute Raw SQL Queries with Ranking in Entity Framework Core without Using DbSet?

Entity Framework Core : exécution de requêtes SQL brutes avec classement (sans DbSet)

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn