LINQ表達式我有一個計算的屬性是比較LAMBDA結果以恆定
public decimal Avaibility
{
get{ return l => l.Start - l.Uses.Sum(u => u.Amount);}
}
,所以我不能包括任何謂詞LINQ到實體此屬性像
Products.Where(l => l.Avaibility> 0);
我目前的解決方案任何地方,我需要它,但不是維護重複拉姆達,我要像達到什麼
private Expression AvaibilityCalculation = l => l.Start - l.Uses.Sum(u => u.Amount);
public decimal Avaibility
{
get{ return AvaibilityCalculation.Compile()(this/*product*/) ;}
}
public Product ProductsWithStock()
{
//for l => l.Start - l.Uses.Sum(u => u.Amount) > 0
return Products.Where(AvaibilityCalculation.GreaterThan(Expression.Constant(0, typeof(decimal))));
}
任何想法?
我很滿意我的linq性能,我需要它更容易使用和可保持性 – cyberdantes