我有一个有趣的问题让我在谷歌上搜索了几天。
我正在执行一个存储的存储过程,该过程实现了自定义.net分页的Offset Fetch Next。
实体框架似乎无法找出正确的返回类型。它认为我试图返回一个int而不是结果集。因此我不能使用select。
代码:
@param1 bit = null,
@param2 bit = null,
@pageNumber int = 1,
@rowsPage int = 10
SELECT id, name
FROM table
WHERE
(@param1 IS NULL OR (param1 = @param1 ))
AND (@param2 IS NULL OR (param2 = @param2 ))
ORDER BY name DESC
OFFSET ((@pageNumber - 1) * @rowsPage) ROWS
FETCH NEXT @rowsPage ROWS ONLY
Linq代码:
var result = context.storedProceure(params).Select(s => new object { blah =
s.blah, blah1 = s.blah1}).ToList();
错误:' int'不包含'选择'的定义没有扩展方法'选择'接受类型' int'的第一个参数可以找到(你错过了使用指令或程序集引用吗?)
如果我删除Offset Next Command,Linq可以找出复杂的结果类型。
如何帮助实体框架找出结果类型?
我试过了:
设置NOCOUNT ON;
设置FMTONLY OFF;
似乎没有什么区别......