【发布时间】:2013-11-20 03:21:32
【问题描述】:
我有一个创建和执行动态查询的存储过程。我希望能够将该存储过程的结果用作尚未执行的 IQueryable。
IE
context.StoredProcedure(parameter1, parameter2)
.Where(i => i.StatusID != 2)
.OrderBy(j => j.Policy)
.Skip(recordsToSkip)
.Take(pageSize).ToList();
这可能吗?我不希望该过程返回结果列表,然后执行分页。
【问题讨论】:
-
为什么不把分页细节放在存储过程中并通过它们?
-
我不确定在纯 TSQL 中是否可行(您可能必须将 SP 结果提取到临时表并查询该表)。看起来你的 SP 真的应该是一个视图。
-
我们已经有了一个函数,它接受一个 IQueryable 并将返回一个包含分页和排序算法的 IQueryable。我想使用它,所以它更加集中。
-
在这种情况下,我会按照@MarcinJuraszek 所说的去做。围绕它包裹一个视图,这样你就可以让你的
IQueryable用一个很好的查询访问数据库。 -
嗯好的。我不是将存储过程包装在视图中的意思,但我想这是一个不同的问题。
标签: c# .net linq sql-server-2008