首頁 >後端開發 >C++ >如何在 Entity Framework Core 中使用自訂資料類型執行原始 SQL 查詢?

如何在 Entity Framework Core 中使用自訂資料類型執行原始 SQL 查詢?

Barbara Streisand
Barbara Streisand原創
2025-01-27 01:16:09649瀏覽

How to Execute Raw SQL Queries with Custom Data Types in Entity Framework Core?

>在實體框架核心中使用自訂資料類型執行原始SQL查詢

>實體框架Core的演變改變瞭如何處理原始SQL查詢,尤其是有關自訂資料類型的方法。 最近版本不再可用dbData.Database.SqlQuery<somemodel>方法。 本指南詳細介紹如何執行RAW SQL查詢,以傳回各種EF Core版本中的自訂類型。

EF Core 8及以後 EF Core 8和隨後的釋放顯著增強了

的方法,直接支援任意類型的返回。 這大大簡化了過程。

EF Core 3.0及以後

SqlQuery>利用無鑰匙實體類型:

>

>在EF Core 3.0及以後的RAW SQL查詢中處理自訂資料類型的建議方法是採用免鑰匙實體類型。 這是使用

>屬性或

配置方法來實現的。 >

使用

>或[Keyless]執行查詢:.HasNoKey()>

<code class="language-csharp">[Keyless]
public class SomeModel
{
    // Properties
}</code>
ef core 2.1(rc1)

FromSqlRawFromSql>利用dbquery

<code class="language-csharp">var result = context.SomeModels.FromSqlRaw("SQL_SCRIPT").ToList();
var result = await context.SomeModels.FromSql("SQL_SCRIPT").ToListAsync();</code>
在EF Core 2.1 rc1中,定義

內的a

屬性,並使用

>方法:

> ef core 2.0

DbQuery<T> DbContext替代策略:FromSql

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

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    modelBuilder.Entity<SomeModel>().HasNoKey();
}

// Execute query
var result = context.SomeModels.FromSql("SQL_SCRIPT").ToList();</code>
ef core 2.0需要解決方法:

>自訂dtos:建立專用資料傳輸物件(DTO)來對應查詢結果。 這需要數據的手動映射。

>

sqlcommand:直接使用
    。 這繞過EF Core的功能,降低了其優勢。

以上是如何在 Entity Framework Core 中使用自訂資料類型執行原始 SQL 查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn