Linq to SQL 2016存储过程OFFSET FETCH NEXT错误的返回类型

时间:2017-04-07 15:17:48

标签: asp.net sql-server entity-framework linq

我有一个有趣的问题让我在谷歌上搜索了几天。

我正在执行一个存储的存储过程,该过程实现了自定义.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;

似乎没有什么区别......

0 个答案:

没有答案