Ali*_*ssa 5 c# linq asp.net entity-framework
我有一张200,000记录的表格,我只获得了前十名的记录,.Take()但是获取数据大约需要10秒钟.
我的问题是:该.Take()方法是否从数据库获取所有数据并过滤客户端的前10名?
这是我的代码:
mylist = (from mytable in db.spdata().OrderByDescending(f => f.Weight)
group feed by mytable.id into g
select g.FirstOrDefault()).Take(10).ToList();
Run Code Online (Sandbox Code Playgroud)
spdata() 是一个函数从存储过程导入.
谢谢
存储过程可能会向客户端返回大量数据,这非常慢.您无法远程查询sproc.这可以使用视图或表值函数.
在查询中无法使用sproc.您只能自己执行它.
你的意图可能是Take(10)在服务器上执行.为此,您需要切换到内联查询,视图或TVF.
| 归档时间: |
|
| 查看次数: |
1288 次 |
| 最近记录: |