搜索很多,但没有找到适合我的解决方案。我在lambda expression
中引入了一个变量,这就是显示此错误消息的原因。此外,我可以解决编写“SQL Like Linq Query”的问题,但这不是我的期望。我的期望是在“Linq使用Lambda表达式”中引入变量。这可能吗?带有语句正文的lambda表达式无法转换为表达式树(Lambda和Linq)
带有语句正文的lambda表达式不能转换为表达式树。
这里是我的代码:
IQueryable<IGrouping<int, AnimalFood>> animalFoods = db.AnimalFoods.GroupBy(x => x.FoodId);
IQueryable<FoodSummaryViewModel> foodSummaryViewModel = animalFoods.Select(g =>
{
var animalFood = g.FirstOrDefault();
return new FoodSummaryViewModel()
{
FoodName = animalFood.Food.FoodName,
FoodPrice = animalFood.Food.UnitPrice,
TotalFoodQuantity = g.Sum(x => x.Animal.AnimalQuantity * x.FoodQuantity),
TotalPrice = g.Sum(x => x.Animal.AnimalQuantity * x.FoodQuantity) * animalFood.Food.UnitPrice
};
});
return foodSummaryViewModel.ToList();
的[“与语句体lambda表达式不能转换为表达式树”]可能的复制(http://stackoverflow.com/questions/5179341/a-lambda-expression-with-a-statement-body-can-be-conversion-to-a-expression) –