Asp.net mvc Lambda表达式:如何合并2个字段?

Asp.net mvc Lambda表达式:如何合并2个字段?,asp.net-mvc,razor,lambda,concatenation,html-select,Asp.net Mvc,Razor,Lambda,Concatenation,Html Select,我想合并2个数据库字段,并使用Lambda表达式作为项目填充到Dropdownlist。这是我在控制器上填充dropdownlist的lambda表达式。我尝试了很多组合,但无法合并字段。你能帮我吗?我怎么做?谢谢 注意:这里我想合并CityName和MeetingDate字段,如巴黎2014年1月1日,作为dropdownlist的一项 private void PopulateMeetingsDropDownList(object selectedMeetings = null)

我想合并2个数据库字段,并使用Lambda表达式作为项目填充到Dropdownlist。这是我在控制器上填充dropdownlist的lambda表达式。我尝试了很多组合,但无法合并字段。你能帮我吗?我怎么做?谢谢

注意:这里我想合并CityName和MeetingDate字段,如巴黎2014年1月1日,作为dropdownlist的一项

 private void PopulateMeetingsDropDownList(object selectedMeetings = null)
    {
        var meetingsQuery = repository.Meetings
            .Join(repository.Cities, m => m.MeetingCityId, c => c.CityID,
                    (m, c) => new
                    {
                        CityID = c.CityID,
                        CityName = c.CityName,
                        MeetingDate=m.MeetingStartDate
                    })
             .OrderBy(x => x.CityID).ToList();
        ViewData["MeetingId"] = new SelectList(meetingsQuery, "CityID", "CityName", selectedMeetings);
    }        

如何代替分开的
CityName
MeetingDate
返回串联的
DisplayValue

更新代码

private void PopulateMeetingsDropDownList(object selectedMeetings = null)
{
    var meetingsQuery = repository.Meetings
        .Join(repository.Cities, m => m.MeetingCityId, c => c.CityID,
            (m, c) => new {
                CityID = c.CityID,
                CityName = c.CityName,
                MeetingDate=m.MeetingStartDate
            }
        )
        .OrderBy(x => x.CityID)
        .AsEnumerable()
        .Select(
            i => new {
                CityID = i.CityID,
                DisplayValue = string.Format(
                    "{0} {1:dd.MM.yyyy}", 
                    i.CityName, i.MeetingDate)
            }
        ).ToList();
    ViewData["MeetingId"] = new SelectList(meetingsQuery, "CityID", "DisplayValue", selectedMeetings);
}
.AsEnumerable()
将此查询“拆分”为两部分,第一部分是LINQ2SQL,第二部分是LINQ2OBJECT。第一部分将在数据库中执行,第二部分在.NET(本地)中执行。通常,这是首选的方式(提示:性能)-对数据库进行过滤、排序、分组等,以及应用程序中的其他事情


更多详情:,。

你太棒了!非常感谢你的大力帮助。实际上,我遇到了“LINQ to Entities无法识别方法'System.String Format(System.String,System.Object,System.Object)'方法,并且此方法无法转换为存储表达式。”首次应用方法后出现错误消息,但通过在第三行添加“.ToList()”我成功了。因此,为了通知那些可能需要这种强大功能的人,这里是我的控制器中方法的最后状态:

private void PopulateMeetingsDropDownList(object selectedMeetings = null)
{
    var meetingsQuery = repository.Meetings.ToList()
        .Join(repository.Cities, m => m.MeetingCityId, c => c.CityID,
                (m, c) => new
                {
                    CityID = c.CityID,
                    DisplayValue = string.Format("{0} ({1:dd MMMM yyyy})", c.CityName, m.MeetingStartDate) 
                })
       .OrderBy(x => x.CityID).ToList();
    ViewData["MeetingId"] = new SelectList(meetingsQuery, "CityID", "DisplayValue", selectedMeetings); 
}


我认为在第三行和第十行上使用“.ToList()”两次没有问题。请你澄清一下好吗?再次非常感谢您的帮助
br.

对不起,我忘了。我已经更正了答案,请检查并添加了链接以了解更多详细信息。好的,谢谢您的编辑,以便其他人可以使用更正的示例。非常感谢Michal给出的好答案。我建议你的答复作为答复。但不幸的是,我不能投票赞成你的答复,因为没有足够的声誉:(