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>
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
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[Keyless]
.HasNoKey()
Führen Sie Ihre SQL -Abfrage mit 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>
für ältere Versionen (EF Core 2.1 und UP), sollten Sie
Abfragetypen: verwenden
deklarieren Sie eineDbQuery<T>
eine benutzerdefinierte Klasse ist, die die Ausgangsstruktur Ihrer Abfrage entspricht. DbContext
T
Verwenden Sie FromSql
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>
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!