具有语句主体的Lambda表达式无法转换为表达式树 [英] A lambda expression with a statement body cannot be converted to an expression tree

查看:415
本文介绍了具有语句主体的Lambda表达式无法转换为表达式树的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好,

我有以下代码:

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆