具有语句主体的Lambda表达式无法转换为表达式树 [英] A lambda expression with a statement body cannot be converted to an expression tree
问题描述
你好,
我有以下代码:
Hello,
I have the following code:
return _context.Slides.Select(s => s {
var sl = s.SlideLocalized.FirstOrDefault(l => l.Language.Code == language);
return new Models.Slide {
Id = sl.Id,
Language = sl.Language.Code,
Name = s.Name,
};
});
我收到错误消息:
无法将具有语句主体的lambda表达式转换为表达式树
我可以解决此问题吗?
注意:
我有3个对象:Slide,SlideLocalized和Language.
基本上每个幻灯片都包含一个SlideLocalized列表,每个SlideLocalized都包含一种语言:
I get the error:
A lambda expression with a statement body cannot be converted to an expression tree
Can I solve this?
Note:
I have 3 objects: Slide, SlideLocalized and Language.
Basically each Slide contains a list of SlideLocalized and each SlideLocalized contains one Language:
Entities.Slide slides = new Entities.Slide();
Entities.SlideLocalized sl = new Entities.SlideLocalized();
sl.Language = new Entities.Language();
slides.SlideLocalized.Add(sl);
推荐答案
你好,
我有以下内容:
Hello,
I have the following:
return _context.Messages.Select(m => new Models.Message {
Id = m.Id,
Language = language,
Content = m.MessageLocalized.FirstOrDefault(l => l.Language.Code == language).Content,
Title = m.MessageLocalized.FirstOrDefault(l => l.Language.Code == language).Title,
});
是否有可能没有这两行MessageLocalized而使用了lambda表达式?
我想我可以有一个"let"符号.但是我不确定如何在lambda表达式中使用它.
有什么想法吗?
谢谢,
Miguel
Is it possible to not have the two lines MessageLocalized and yet using a lambda expression?
I think I could have a "let" but I am not sure how to use this with lambda expressions.
Any idea?
Thanks,
Miguel
这篇关于具有语句主体的Lambda表达式无法转换为表达式树的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!