首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用跳过并接受存储过程的EF

使用跳过并接受存储过程的EF
EN

Stack Overflow用户
提问于 2017-05-09 22:52:45
回答 1查看 811关注 0票数 5

在调用存储过程时,Skip()Take()是如何在实体框架中工作的?我无法访问sql分析器来检查,但我希望确保优化服务器之间发送的数据量。

假设我有以下代码,其中MyStoredProcedure返回1000+行。

代码语言:javascript
复制
List<MyComplex_Result> myComplexList = db.MyStoredProcedure()
    .Skip(50)
    .Take(10);

Take(10)是否会确保这些行中只有10行从数据库服务器发送到web服务器,或者所有的1000+行都会被发送(尽管只有10行将被发送到客户端)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-07 10:29:09

我以前确实遇到过这样的要求。最初,我的选择是使用存储过程,但是当我意识到可能有数千个数据时,使用SP就不再适用了。以下是我所做的两件事:

  1. 我创建了一个视图,其中有SP的结果。当然,这包含了所有没有过滤器的记录。我使用这种观点通过EF操纵记录,其中采取和跳跃是适用的。
  2. 我坚持SP。我所做的是设计SP,以允许接收采取和跳数。我以字符串的形式创建了SP --使用sp_executesql。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43881051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档