>實體框架Core的演變改變瞭如何處理原始SQL查詢,尤其是有關自訂資料類型的方法。 最近版本不再可用dbData.Database.SqlQuery<somemodel>
方法。 本指南詳細介紹如何執行RAW SQL查詢,以傳回各種EF Core版本中的自訂類型。
SqlQuery
>利用無鑰匙實體類型:
配置方法來實現的。 >
使用>或[Keyless]
執行查詢:.HasNoKey()
>
<code class="language-csharp">[Keyless] public class SomeModel { // Properties }</code>ef core 2.1(rc1)
FromSqlRaw
FromSql
>利用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中,定義
>方法::
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:以上是如何在 Entity Framework Core 中使用自訂資料類型執行原始 SQL 查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!