Конвертировать запрос в лямбда-выражение
Как я могу написать лямбда-выражение для следующего фрагмента SQL-запроса:
Sales_This_Month = SUM(CASE
WHEN Trxn_Type_Code IN ('S','PS','RTN','GS','GR')
AND YEAR(Trxn_Date) = YEAR(GETDATE())
THEN Amount
ELSE 0
END)
2 ответа
Вы можете применить следующее лямбда-выражение к своему объекту источника данных. Вот salesData
ваш объект источника данных. Чтобы узнать больше о том, где здесь.
var result = salesData.Where(x=> (IList<string>)new [] { "S","PS","RTN","GS","GR" }).Contains(x.Trxn_Type) && Trxn_Date.Year == DateTime.Now.Year).Sum(x=>x.Amount);
Попробуйте что-то вроде следующего:
var result = salesData.Select(d => d.Where(x=> (IList<string>)new [] { "S","PS","RTN","GS","GR" })
.Contains(x.Trxn_Type) && Trxn_Date.Year == DateTime.Now.Year)).Count!=0?
d.Where(x=> (IList<string>)new [] { "S","PS","RTN","GS","GR" })
.Contains(x.Trxn_Type) && Trxn_Date.Year == DateTime.Now.Year).Sum(x=>x.Amount) : 0);