繁体   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