提问人:mohammad SLM 提问时间:8/15/2023 最后编辑:Robert Cutajarmohammad SLM 更新时间:8/17/2023 访问量:180
FromSqlRaw 在 .net 6 中对我不起作用。“FromSqlRaw”或“FromSqlInterpolated”是使用不可组合的 SQL 调用的,并在其上编写查询
FromSqlRaw not working for me in .net 6. 'FromSqlRaw' or 'FromSqlInterpolated' was called with non-composable SQL and with a query composing over it
问:
我有一个在 .Net 3 上工作的查询。升级到 .Net 6 后,它不再起作用了。我在 SQL 中测试了查询,它正在工作,但我无法转换为 Linq - 它给了我这个异常:
“FromSqlRaw”或“FromSqlInterpolated”是使用不可组合的 SQL 调用的,并在其上编写查询。 请考虑在方法后调用“AsEnumerable”以在客户端执行组合。
string sqlCheckAllParents = @";WITH cte AS
(
SELECT Id, ParentId, Published, IsDeleted
FROM Comments h
WHERE Id = {0}
UNION ALL
SELECT p.Id, p.ParentId, p.Published, p.IsDeleted
FROM
Comments p
INNER JOIN
cte c ON c.parentId = p.Id
)
select Id from cte m where IsDeleted = 1 or Published = 0";
var dontAllowLoadData = await _comments.FromSqlRaw(sqlCheckAllParents, parentId ?? 0).Select(x => x.Id).ToListAsync().ConfigureAwait(false);
if (dontAllowLoadData.Any())
{
return new DataGridViewModel<Comment>
{
Records = new List<Comment>(),
TotalCount = 0
};
}
数据库提供程序:(Microsoft.EntityFrameworkCore.SqlServer) 目标框架:(.NET 6.0)Target framework: (.NET 6.0)
打电话并不能解决问题。.AsEnumerable()
答: 暂无答案
评论
context.Database.SqlQuery<int>(query).ToListAsync()