Maison > développement back-end > C++ > Comment puis-je exécuter des requêtes SQL brutes sans DBSET dans l'entité Framework Core?

Comment puis-je exécuter des requêtes SQL brutes sans DBSET dans l'entité Framework Core?

Linda Hamilton
Libérer: 2025-01-27 01:01:12
original
340 Les gens l'ont consulté

How Can I Execute Raw SQL Queries Without DbSets in Entity Framework Core?

SULLAGES POUR LES QUESTIONS SQL RAWES SANS DBSETS Dans l'entité Framework Core

Entity Framework La suppression de Core de dbData.Database.SqlQuery<somemodel> présente un défi lors de l'exécution de requêtes SQL brutes qui renvoient des entités non cartographiées, en particulier pour les tâches telles que les recherches en texte intégral avec le classement. Voici comment surmonter cette limitation:

EF Core 8 et plus tard:

La solution la plus simple dans les versions EF Core 8 et ultérieures est d'utiliser directement SqlQuery. Il prend désormais en charge le retour des types arbitraires, éliminant le besoin d'entités sans clé dans de nombreux cas.

EF Core 3.0 et supérieur:

L'approche recommandée pour EF Core 3.0 et ultérieurement consiste à utiliser Types d'entités sans clé :

  1. Définissez un type d'entité sans clé à l'aide de l'attribut [Keyless] ou de l'API Fluent .HasNoKey().
  2. Exécutez votre requête SQL en utilisant FromSqlRaw ou FromSqlAsync:
<code class="language-csharp">var result = context.SomeModels.FromSqlRaw("SQL SCRIPT").ToList();
var result = await context.SomeModels.FromSql("SQL_SCRIPT").ToListAsync();</code>
Copier après la connexion

EF Core 2.1 et supérieur:

Pour les versions plus anciennes (EF Core 2.1 et plus), envisagez d'utiliser Types de requête :

  1. Déclarer une propriété DbQuery<T> dans votre DbContext, où T est une classe personnalisée correspondant à la structure de sortie de votre requête.
  2. Utiliser FromSql sur cette propriété DbQuery:
<code class="language-csharp">public DbQuery<SomeModel> SomeModels { get; set; }

var result = context.SomeModels.FromSql("SQL_SCRIPT").ToList();
var result = await context.SomeModels.FromSql("SQL_SCRIPT").ToListAsync();</code>
Copier après la connexion

Ces méthodes offrent une flexibilité dans la récupération des données des requêtes SQL brutes, des scénarios accommodants impliquant un classement et des entités non cartographiées au sein de l'entité Framework 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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal