我有一个名为Total的属性,它是从我的数据对象上的其他值派生的。当我尝试在linq to sql中的order by语句中使用此属性时,我得到:成员'...'没有支持的SQL转换。这是有道理的,但有没有解决这种情况?谢谢!
答案 0 :(得分:2)
您可以调用查询,而不是执行OrderBy()
子句。
var items = context.Tables.ToList().OrderBy(x=>x.Total);
您可以这样做,因为在您调用.ToList()
之后,您将使用linq来对象。
正如Broken所提到的,这可能并不适用于所有情况,另一种可能的解决方案是在.Select()
注意 ,我的语法可能有些偏差,没有VS和我:)
var items = context.Tables.Select(t=> new {t.Item1, Total=(t.Price + t.Tax)})
.OrderBy(t=>t.Total);
现在获准使用此类投影,您不会再使用Table
了,但可能是一个选项。