您如何使用Lambda表达式表示此LINQ Order By
语句?
OrderBy price.Quantity <= 50 ? price.Quantity : -price.Quantity
答案 0 :(得分:2)
如果你的意思是Linq的Lambda语法方法,你可以这样做
var ordered = myQuery.OrderBy(p => p.Quantity <= 50? p.Quantity : -p.Quantity);
请注意,您可以表达复杂的条件,例如
var ordered = myQuery.OrderBy(p =>
{
if (somethingComplex)
{
return somethingCalculated;
}
else return somethingElseCalculated;
});
如果对Linq-to-Entities执行OrderBy,则lambda需要可以转换为商店表达式。如果无法将其转换为商店表达式,则可以使用.AsEnumerable()来使OrderBy在客户端执行。