itd*_*per 5 .net linq dynamic-queries
我有这样的代码:
//build query
var shops = (from p in dataContext.shops
let distance = dataContext.GetDistance(p.lat, p.lon, nearlat,nearlon)
join c in dataContext.shops_category on p.id equals c.poi_id
select new ShopsModel { p = p, distance = distance }
);
}
//add dynamic orderby
if(somthig)
shops.OrderBy(distance)
else
shops.OrderBy(p.name)
//get records.
return shop.Take(30).ToList()
Run Code Online (Sandbox Code Playgroud)
它除了OrderBy之外还可以正常工作.生成的SQL代码不包含orderby子句,并且不对记录进行排序.
任何的想法?感谢帮助.
OrderBy不会改变底层数据 - 它返回一个具有适当排序的枚举.您需要将结果分配回商店:
if (someCondition)
{
shops = shops.OrderBy(shop => shop.distance);
}
else
{
shops = shops.OrderBy(shop => shop.p.name);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
784 次 |
| 最近记录: |