entity-framework-core - 带有 2 个参数错误 System.InvalidOperationException 的 EF Core 存储过程:
问题描述
我正在迁移到 EF Core 并尝试使用 2 个参数调用存储过程。
1 个参数的当前设置工作正常。
这是我看到的错误:
System.InvalidOperationException:FromSqlRaw 或 FromSqlInterpolated 是使用不可堆肥的 SQL 调用的,并且查询在其上进行了编写。考虑
AsEnumerable
在 FromSqlRaw 或 FromSqlInterpolated 方法之后调用以在客户端执行组合。在
这是我的存储库调用:
public IQueryable<PartsGridDTO> GetPartsGridQueryable(int partId, int groupId)
{
return MoreContext.SpPartsGridDetailYourCases
.FromSqlRaw($"EXECUTE dbo.GetProductsByPartAndGroup {partId}, {groupId}")
.Select(s => new PartsGridDTO
{
PartId = partId,
//....
}).AsQueryable();
}
我从这里尝试了一些修复:
在 EF Core 3.1 中包含 FromSqlRaw 和存储过程
但这些都不起作用。
我要返回AsQueryable()
到控制器,然后调用.ToListAsync()
.
.IgnoreQueryFilters();
我之前尝试过添加.AsQueryable()
,但我仍然看到错误。
有什么想法吗?我是否传递了错误的参数?是 EF Core 问题还是?
解决方案
在我解决问题之前,有 3 个项目:
我有额外的属性不在存储过程的返回范围内。我想这会导致我在上面发布的错误。
(一个子问题)我也只需要返回网格要显示的项目。这意味着网格可能仅显示存储过程中返回的 8 个值中的 5 个。在调用的存储过程的返回项中包含这些额外的列稍后会导致此错误:InvalidOperationException: The required column 'Address' was not present in the results of a 'FromSql' operation
这是我存储的过程代码的最终外观:
return Context.EntityExample.FromSqlRaw($"dbo.GetProductsByPartAndGroup {partId}, {groupId}")
推荐阅读
- django - TypeError:日期类型的对象不是 JSON 可序列化的
- java - 使用android资源时出现“表达式中的数值溢出”
- javascript - 如何指定行/列以应用 R Shiny 的回调函数?
- java - 如何使用 java 代码添加 DB2 库来调用 AS400 PGM
- c# - 亚马逊 MWS 日期时间问题取决于初始化方式
- ruby-on-rails - 将 Rails DB 设置从数据库名称更改为 url 后,PostgreSQL 需要密码
- python - SimpleITK 有广播吗?
- java - 将python文件+所有依赖项+解释器编译成一个java\.net(dll或exe)文件?
- c - 使用本地编译的 OpenSSL 加载 ibcrypto.so.3 失败
- c# - 在 Hololens 上将数据写入文件