Tim*_*thy 4 paging entity-framework join
我有一个左连接的查询:
var query = (from v in context.Vehicles
//left join vehicleAttributes
join va in context.VehicleAttributes on v.VehicleId equals va.VehicleId into vAttributes
from vehicleAttributes in vAttributes.DefaultIfEmpty()
where v.FleetId == fleetId
select new { v, vehicleAttributes });
Run Code Online (Sandbox Code Playgroud)
现在我需要对它进行分页.
这可行,但获得所有行,比我实际需要的更多
query.ToList().Select(x => x.v).Distinct().Skip(10 * (page - 1)).Take(10).ToList();
Run Code Online (Sandbox Code Playgroud)
这是我试过的,但现在我没有联合价值
query.Select(x => x.v).Distinct().ToList().Skip(10 * (page - 1)).Take(10).ToList();
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
谢谢
ToList()触发对数据库的调用,因此您只需在应用Skip and Take后执行此操作.您还需要一个OrderBy子句.
你应该可以做这样的事情:
var data = (from v in context.Vehicles
join va in context.VehicleAttributes on v.VehicleId equals va.VehicleId into vAttributes
from vehicleAttributes in vAttributes.DefaultIfEmpty()
where v.FleetId == fleetId
select new { v, vehicleAttributes })
.OrderBy(p => p.v.FleetId)
.Skip(10 * (page - 1))
.Take(10)
.ToList();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10667 次 |
| 最近记录: |