【问题标题】:Linq to Entities questionLinq to Entity 问题
【发布时间】:2011-06-26 06:43:08
【问题描述】:

是否有一个(相当)简单的解释为什么我不能这样做:

var EmpList = from emp in context.Employees
              orderby emp.LastName
              select new { Name = emp.FirstName + " " + emp.LastName };

此外,是否有可能在查询中实现这一点,还是我必须在使用 foreach 或类似的东西之后进行这种处理?

谢谢..

【问题讨论】:

    标签: c# linq frameworks entity


    【解决方案1】:

    可以做到这一点。

    然而,创建一个只有一个成员的匿名类型似乎没有必要。试试这个:

    var employeeNames =
        from emp in context.Employees
        orderby emp.LastName
        select emp.FirstName + " " + emp.LastName;
    

    【讨论】:

    • 有必要使用IQueryable:)吗?
    • 否 - 我现在将其更改为 var。但有时了解类型是有用的。特别是如果您想将其作为方法结果返回。
    • 我不是这个意思,但已经无所谓了:)
    • @Shawn:我不在电脑自动取款机,所以我不能确切地说出错误是什么,如果未解决,我稍后会发布@Mark:谢谢,我稍后会检查;例如,我只是简化了,但我确定它已经挂断了..也许我的错误在其他地方
    • 谢谢大家。你当然是对的。我检查了我的代码并意识到我的错误发生在我访问匿名类型的成员时,而不是在查询中。再次感谢..
    【解决方案2】:

    据我所知,您可以做到这一点。你也可以这样做:

    var EmpList = from emp in context.Employees
                  let name = emp.FirstName + " " + emp.LastName
                  orderby emp.LastName
                  select name;
    

    但尚未在 Studio 中对此进行测试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多