Maison > développement back-end > C++ > Comment puis-je exécuter des requêtes SQL brutes avec des mappages de résultats personnalisés dans Entity Framework Core ?

Comment puis-je exécuter des requêtes SQL brutes avec des mappages de résultats personnalisés dans Entity Framework Core ?

Mary-Kate Olsen
Libérer: 2025-01-27 00:56:12
original
387 Les gens l'ont consulté

How Can I Execute Raw SQL Queries with Custom Result Mappings in Entity Framework Core?

Exécution des requêtes SQL brutes et mappage de résultats personnalisés dans l'entité Framework Core

Présentation

L'évolution de Core Framework de l'entité a modifié la façon dont les requêtes SQL brutes avec des mappages de résultats personnalisés sont gérés. Cet article relève des défis de la récupération des données, en particulier lors de la combinaison des données de la table avec les résultats des requêtes de recherche en texte complet, en se concentrant sur les solutions pour diverses versions EF Core.

EF Core 8 et plus tard

EF Core 8 et les versions suivantes simplifient ce processus. La méthode SqlQuery prend désormais directement en charge directement les types arbitraires. Cela permet d'utiliser des types d'entités sans clé et des classes personnalisées pour cartographier les résultats de la requête.

EF Core 3.0 et Types d'entités sans clé

Pour EF Core 3.0, les types d'entités sans clé fournissent une solution propre. Définissez une classe sans clé primaire en utilisant l'attribut [Keyless] ou en appelant HasNoKey().

<code class="language-csharp">[Keyless]
public class SomeModel { ... }

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<SomeModel>().HasNoKey();
}</code>
Copier après la connexion

Exécutez votre requête en utilisant FromSqlRaw ou FromSql:

<code class="language-csharp">var result = context.SomeModels.FromSqlRaw("YOUR SQL SCRIPT").ToList();</code>
Copier après la connexion

EF Core 2.1 et Types de requête

EF Core 2.1 Types de requête introduits, offrant une approche structurée pour cartographier les classes personnalisées. Ajoutez une propriété DbQuery<T> à votre DbContext et utilisez FromSql:

<code class="language-csharp">public DbQuery<SomeModel> SomeModels { get; set; }

var result = context.SomeModels.FromSql("YOUR SQL SCRIPT").ToList();</code>
Copier après la connexion

Résumé

Ces méthodes répondent efficacement à la nécessité de mappage de résultats personnalisés lors de l'exécution des requêtes SQL brutes dans le noyau de Framework Entity, permettant une récupération flexible de données, y compris des scénarios impliquant des résultats de recherche en texte complet et des ensembles de données combinés. Choisissez l'approche qui convient le mieux à votre version EF Core. N'oubliez pas de remplacer "YOUR SQL SCRIPT" par votre requête SQL réelle.

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