簡體   English   中英

使用 EF Core 6 在 ASP.NET Core 6 中使用 FromSqlInterpolated 執行存儲過程時出錯

[英]Error executing stored procedure with FromSqlInterpolated in ASP.NET Core 6 with EF Core 6

我在我的 SQL 服務器中有這個帶有單個參數並返回單個記錄的存儲過程。

在此處輸入圖像描述

當我這樣稱呼它時:

public async Task<EmpleadoDTO> GetEmpleado(string codigoSAP)
{
     var empleado = await _context.Empleados
                                  .FromSqlInterpolated($"GetEmpleadoByCodigoSAP {codigoSAP}")
                                  .FirstOrDefaultAsync();

     return EmpleadoToDTO(empleado);
}

我收到這個錯誤

System.InvalidOperationException:“FromSqlRaw”或“FromSqlInterpolated”是使用不可組合的 SQL 調用的,並在其上組合了一個查詢。 考慮在客戶端執行組合的方法之后調用“AsEnumerable”。

但是如果我直接執行SQL:

var empleado = await _context.Empleados
                             .FromSqlInterpolated($"select empID as EmpleadoId,firstName as Nombre,middleName as Apellido1,lastName as Apellido2,Email as Email,U_CODEMPL as CodigoSAP,U_Activo as Activo,U_Sociedad as Sociedad from OHEM where U_CODEMPL={codigoSAP}")
                             .FirstOrDefaultAsync();

它工作正常。

有什么想法嗎?

謝謝

從 EF Core 3.1 開始, FromSqlRaw / FromSqlInterpolated方法在與存儲過程一起使用時無法組合,因此您應該使用AsEnumerable / AsAsyncEnumerable

參考微軟文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM