我有以下代码可以正常工作,但我想知道是否有更好的方法来根据用户的选择订购选择。
public List<TB_PRODUTO> GetAll(int ID_Empresa, String Order)
{
if(Order.Equals("COD_HERBALIFE"))
return Ent.TB_PRODUTO.Where(x => x.ID_EMPRESA == ID_Empresa).Select(x => x).OrderBy(x => x.COD_HERBALIFE).ToList();
else if (Order.Equals("DESCRICAO"))
return Ent.TB_PRODUTO.Where(x => x.ID_EMPRESA == ID_Empresa).Select(x => x).OrderBy(x => x.DESCRICAO).ToList();
else
return Ent.TB_PRODUTO.Where(x => x.ID_EMPRESA == ID_Empresa).Select(x => x).OrderBy(x => x.PRECO).ToList();
}
提前致谢。
答案 0 :(得分:0)
private static object GetPropertyValue(object obj, string propertyName)
{
return obj.GetType().GetProperty(propertyName).GetValue(obj, null);
}
public List<TB_PRODUTO> GetAll(int ID_Empresa, String Order)
{
return Ent.TB_PRODUTO.Where(x => x.ID_EMPRESA == ID_Empresa).Select(x => x).OrderBy(x => GetPropertyValue(x, Order)).ToList();
}
GetPropertyValue将返回与Order字符串匹配的属性,前提是该字符串与该属性完全匹配。