尝试连接LINQ列值,不确定LINQ错误在哪里?

时间:2014-07-11 15:22:34

标签: linq linq-to-entities

我正在尝试连接2列值。应该很简单,但看起来我的LINQ不正确:

@Html.DisplayFor(modelItem => item.StdOrgUsers
                              .Where(r => r.IsAccountOwner == true)
                              .First(r => new {r.Firstname + " " + r.Lastname }))

我收到此错误:

  

编译器错误消息:CS0746:无效的匿名类型成员声明符。必须使用成员分配,简单名称或成员访问声明匿名类型成员。

必须与之相关:

new {r.Firstname + " " + r.Lastname }

提前致谢。

2 个答案:

答案 0 :(得分:2)

您无法在First内声明您需要的匿名类型:

@Html.DisplayFor(modelItem => item.StdOrgUsers
                                  .Where(r => r.IsAccountOwner == true)
                                  .Select(r => new { FullName = r.Firstname + " " + r.Lastname }))
                                  .First();

同时为匿名类型FullName指定属性名称,因为您要连接两个属性。

对于错误:

  

模板只能用于字段访问,属性访问,   单维数组索引或单参数自定义索引器   表达式。

你不需要匿名类型,一个简单的连接字符串就足够了:

@Html.DisplayFor(modelItem => item.StdOrgUsers
                                  .Where(r => r.IsAccountOwner == true)
                                  .Select(r => r.Firstname + " " + r.Lastname)
                                  .First();

答案 1 :(得分:1)

您不需要匿名类型来连接两个字符串:

@Html.DisplayFor(modelItem => item.StdOrgUsers.Where(r => r.IsAccountOwner == true).Select(r => r.Firstname + " " + r.Lastname).First())