c# – Linq To SQL:按任意属性(列)名称排序查询
发布时间:2020-12-15 06:26:27 所属栏目:百科 来源:网络整理
导读:我有一个更大/更复杂的问题,但为了简单起见,让我们考虑以下几点: 让我们说我在SQL DataBase中有一个名为Product的表,它有两列,ID(int,主键)和Name(varchar / string).我也有一个简单的LINQ DataContext. 我有一个查询构造并交给“我的”功能.让我们说这是一
我有一个更大/更复杂的问题,但为了简单起见,让我们考虑以下几点:
让我们说我在SQL DataBase中有一个名为Product的表,它有两列,ID(int,主键)和Name(varchar / string).我也有一个简单的LINQ DataContext. 我有一个查询构造并交给“我的”功能.让我们说这是一样的:(虽然可能有点复杂) IQueryable<Product> query = from p in db.Products select p; 一旦我的方法获取此查询,作为参数传入,它必须更改排序顺序,例如 IQueryable<Product> sortedQuery = query.OrderBy(x => x.Name); 我想让这个更通用,即指定要排序的字段.通常,我可以做一个需要一个字符串的switch语句.但是我想知道是否有一种直接传递参数的方法.我打算将其扩展到其他数据库表,所以这些switch语句将变得乏味. 我在尝试像: IQueryable<Product> sortedQuery = query.OrderBy(x => (typeof(Product)).GetProperty(“Name”)); 但这不行.我也想确保LINQ to SQL被维护,即在SQL Server上完成的排序.因此,如果我调试,我应该从这个LINQ查询得到一个SQL查询. 预先感谢您的帮助. 解决方法
您可以为此目的使用Dynamic Linq.
见这里Dynamic LINQ (Part 1: Using the LINQ Dynamic Query Library) 然后你可以打电话: var query = DBContext.Users.Where( "Age > 3" ).OrderBy( "Name asc" ); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容