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

正在尝试连接LINQ列值,但不确定LINQ错误在哪里?,linq,linq-to-entities,Linq,Linq To Entities,我试图连接一个2列的值。应该很简单,但我的LINQ不正确似乎: @Html.DisplayFor(modelItem => item.StdOrgUsers .Where(r => r.IsAccountOwner == true) .First(r => new {r.Firstname + " " + r.Lastname })) 我得到这个错误: 编译

我试图连接一个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 }

提前感谢。

您不能在
中声明匿名类型,首先您需要的是:

@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();

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


@Html.DisplayFor(modelItem=>item.StdOrgUsers.Where(r=>r.IsAccountOwner==true)。选择(r=>r.Firstname+“”+r.Lastname)。First())

实际上我在这方面遇到了一个错误:。。。CS0746:无效的匿名类型成员声明符。匿名类型成员必须使用成员分配、简单名称或成员访问权限声明。我复制并粘贴了你的代码。@SamJolly,你确定你已经指定了属性名
FullName
,就像在代码
中一样。选择(r=>new{FullName=r.Firstname+“”+r.Lastname})
?好的,完成了。现在获取:模板只能用于字段访问、属性访问、一维数组索引或单参数自定义索引器表达式。@SamJolly,在这种情况下,您根本不需要匿名类型,只需执行:
。选择(r=>r.Firstname+“”+r.Lastname)