Heim > Backend-Entwicklung > C++ > Wie kann ich Raw-SQL-Abfragen ohne DbSets in Entity Framework Core ausführen?

Wie kann ich Raw-SQL-Abfragen ohne DbSets in Entity Framework Core ausführen?

Linda Hamilton
Freigeben: 2025-01-27 01:01:12
Original
340 Leute haben es durchsucht

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

Workarounds für Roh -SQL Entity Framework Core Die Entfernung von

stellt eine Herausforderung bei der Ausführung von RAW-SQL-Abfragen vor, die nicht in Kindkapital abgebildete Entitäten zurückgeben, insbesondere für Aufgaben wie Volltext-Suchanfragen mit Ranking. Hier erfahren Sie, wie Sie diese Einschränkung überwinden können:

dbData.Database.SqlQuery<somemodel>

ef Core 8 und später:

Die einfachste Lösung in EF Core 8 und späteren Versionen besteht darin,

direkt zu verwenden. Es unterstützt nun die zurückkehrenden willkürlichen Typen und beseitigt in vielen Fällen die Notwendigkeit von schlüssellosen Entitäten.

SqlQuery

EF Core 3.0 und höher:

Der empfohlene Ansatz für EF Core 3.0 und später besteht darin,

Schlüssellose Entitätstypen

: zu verwenden

Definieren Sie einen Schlüssellosenentitätstyp mit dem
    -attribut oder fließenden API
  1. . [Keyless] .HasNoKey() Führen Sie Ihre SQL -Abfrage mit
  2. oder
  3. : FromSqlRaw aus FromSqlAsync
<code class="language-csharp">var result = context.SomeModels.FromSqlRaw("SQL SCRIPT").ToList();
var result = await context.SomeModels.FromSql("SQL_SCRIPT").ToListAsync();</code>
Nach dem Login kopieren
EF Core 2.1 und höher:

für ältere Versionen (EF Core 2.1 und UP), sollten Sie

Abfragetypen

: verwenden

deklarieren Sie eine
    -Mobilie in Ihrem
  1. , wobei DbQuery<T> eine benutzerdefinierte Klasse ist, die die Ausgangsstruktur Ihrer Abfrage entspricht. DbContext T Verwenden Sie
  2. für diese
  3. Eigenschaft: FromSql DbQuery
Diese Methoden bieten Flexibilität beim Abrufen von Daten aus RAW-SQL-Abfragen, wobei Szenarien mit Ranking und nicht eingebauten Entitäten innerhalb des Entity Framework-Kerns berücksichtigt werden.
<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>
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie kann ich Raw-SQL-Abfragen ohne DbSets 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