【发布时间】:2010-12-31 03:37:26
【问题描述】:
我有以下 LINQ 查询:
using (var db = new MyDataContext()) {
int[] onlineUsers = GetOnline();
var users = (from u in db.Users orderby
(onlineUsers.Contains(u.u_username) &&
u.u_hasvisible_photo) descending,
u.u_lastlogin descending select
u.u_username).Skip(startRowIndex).
Take(maximumRows).ToList();
}
这工作正常,并使用 IN 运算符生成 SQL 查询。
问题是 int[] 中的每个 int 都通过不同的参数传递,我知道 SQL 每个查询的参数限制为 2100 个。
我认为使用 LINQ 动态库 OrderBy 进行排序会更好。
使用 .OrderBy(orderquery) 代替“onlineUsers.Contains(u.u_username) && u.u_hasvisible_photo) 降序”。
我在网上搜索了执行此操作的指南或示例,但找不到任何帮助。社区可以帮助我提供可能帮助我实现此操作的代码或链接吗?
【问题讨论】:
标签: linq dynamic sql-order-by