gpt4 book ai didi

c# - LINQ To SQL 动态排序

转载 作者:太空宇宙 更新时间:2023-11-03 14:26:41 25 4
gpt4 key购买 nike

我想将排序字段和方向动态传递给 LINQ to SQL 代码。但是我找不到那样表演的方法,因为如果我不能写users.OrderBy(d => 字段);

有什么办法可以通过动态字段来排序吗?谢谢。

private static IQueryable<user> GetUserData(String Field, String Direction)
{
UserDataContext dc = new UserDataContext();

var users = from d
in dc.users
orderby Field ascending
select d;

if (Direction == "ascending")
{
return users.OrderBy(d => d.userName);
}
else
{
return users.OrderByDescending(d => d.userName);
}
}

最佳答案

Queryable.OrderBy扩展方法采用 Expression<Func<TSource, TKey>> 类型的参数.这不必使用 lambda 表达式创建,但可以通过 Expression 手动构建类,它允许您在代码中动态构造任何类型的表达式。这可用于创建动态 OrderBy 方法。

我还读到了 LINQ Dynamic Query Library在最近的一个问题中,似乎有一种方法可以做到这一点。它显然作为代码示例包含在 VS2008 的一些示例集合中,请阅读链接以获取更多信息。

关于c# - LINQ To SQL 动态排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3782664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com