Heim > Backend-Entwicklung > C++ > Wie kann ich Roh-SQL-Abfragen mit benutzerdefinierten Ergebniszuordnungen in Entity Framework Core ausführen?

Wie kann ich Roh-SQL-Abfragen mit benutzerdefinierten Ergebniszuordnungen in Entity Framework Core ausführen?

Mary-Kate Olsen
Freigeben: 2025-01-27 00:56:12
Original
387 Leute haben es durchsucht

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

Ausführen von Raw-SQL-Abfragen und benutzerdefinierter Ergebniszuordnung in Entity Framework Core

Übersicht

Die Weiterentwicklung von Entity Framework Core hat die Art und Weise verändert, wie unformatierte SQL-Abfragen mit benutzerdefinierten Ergebniszuordnungen gehandhabt werden. Dieser Artikel befasst sich mit den Herausforderungen beim Abrufen von Daten, insbesondere beim Kombinieren von Tabellendaten mit Ergebnissen aus Volltextsuchabfragen, und konzentriert sich auf Lösungen für verschiedene EF Core-Versionen.

EF Core 8 und höher

EF Core 8 und nachfolgende Versionen vereinfachen diesen Prozess. Die Methode SqlQuery unterstützt jetzt direkt die Rückgabe beliebiger Typen. Dies ermöglicht die Verwendung von schlüssellosen Entitätstypen und benutzerdefinierten Klassen zum Zuordnen von Abfrageergebnissen.

EF Core 3.0 und Keyless-Entitätstypen

Für EF Core 3.0 bieten schlüssellose Entitätstypen eine saubere Lösung. Definieren Sie eine Klasse ohne Primärschlüssel mit dem Attribut [Keyless] oder durch Aufruf von HasNoKey().

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

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<SomeModel>().HasNoKey();
}</code>
Nach dem Login kopieren

Führen Sie Ihre Abfrage mit FromSqlRaw oder FromSql aus:

<code class="language-csharp">var result = context.SomeModels.FromSqlRaw("YOUR SQL SCRIPT").ToList();</code>
Nach dem Login kopieren

EF Core 2.1 und Abfragetypen

EF Core 2.1 führte Abfragetypen ein und bietet einen strukturierten Ansatz für die Zuordnung benutzerdefinierter Klassen. Fügen Sie eine DbQuery<T>-Eigenschaft zu Ihrem DbContext hinzu und verwenden Sie FromSql:

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

var result = context.SomeModels.FromSql("YOUR SQL SCRIPT").ToList();</code>
Nach dem Login kopieren

Zusammenfassung

Diese Methoden erfüllen effektiv die Notwendigkeit einer benutzerdefinierten Ergebniszuordnung bei der Ausführung von Roh-SQL-Abfragen in Entity Framework Core und ermöglichen einen flexiblen Datenabruf, einschließlich Szenarien mit Volltextsuchergebnissen und kombinierten Datensätzen. Wählen Sie den Ansatz, der am besten zu Ihrer EF Core-Version passt. Denken Sie daran, "YOUR SQL SCRIPT" durch Ihre tatsächliche SQL-Abfrage zu ersetzen.

Das obige ist der detaillierte Inhalt vonWie kann ich Roh-SQL-Abfragen mit benutzerdefinierten Ergebniszuordnungen in Entity Framework Core ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage