我正在尝试构建一个函数来根据某些参数动态生成不同的查询。我对 LINQ 语法有点困惑,我不确定我是否做得对。
字符串类型参数集是“search”(搜索文本框值)、“searchfield”(搜索内容)、“limit_begin”、“limit_end”,表示行数和从哪里开始。“order_by”按哪个字段排序。“order_sort”用于排序的方式。
我之前在stackoverflow上发现了这个'getpropertyvalue'反射函数,我希望它可以根据我自己的解释来做我想要的。
private static object GetPropertyValue(object obj, string property)
{
System.Reflection.PropertyInfo propertyInfo = obj.GetType().GetProperty(property);
return propertyInfo.GetValue(obj, null);
}
if (order_sort == "ASC")
{
(from a in entities.UserTable
where GetPropertyValue(a, searchfield).ToString().Contains(search)
select a)
.OrderBy("a." + order_by)
.Skip(Convert.ToInt32(limit_begin))
.Take(Convert.ToInt32(limit_end))
.ToList();
}
else if (order_sort == "DESC")
{
(from a in entities.UserTable
where GetPropertyValue(a, searchfield).ToString().Contains(search)
select a)
.OrderByDescending("a." + order_by)
.Skip(Convert.ToInt32(limit_begin))
.Take(Convert.ToInt32(limit_end))
.ToList();
}
我在“Orderby”行出现错误, VS2008 用红色突出显示它,表示无法从用法中推断出参数的类型。