0

我有:

ViewBag.StdLibraryId = new SelectList(db.StdLibrary, "Id", "Name",stdlibraryitem.StdLibraryId);

我想将另一列的值附加到文本输出中,所以它类似于

ViewBag.StdLibraryId = new SelectList(db.StdLibrary, "Id", Model.Name + "(" + model.Category.Name + ")", stdlibraryitem.StdLibraryId);

但是,显然上面的代码是错误的。我也倾向于在我的 LINQ 中使用 Lambda 表达式。

代码应该是什么样的?

非常感谢提前。

编辑

我的新代码:

            ViewBag.StdLibraryId = new SelectList(db.StdLibrary.Select(r=> new {Id = r.Id, Name= r.Name + "(" + r.StdSection.Name + ")"}), "Id", "Name", stdlibraryitem.StdLibraryId);
4

1 回答 1

1

您可以只使用一个匿名对象,您将在其中进行连接。

var stdLibraryForCombo = db.StdLibrary
                         .Select(m => new {
                            Id = m.Id,
                            Name = m.Name + " (" + m.Category.Name + ")"
                         });
ViewBag.StdLibraryId = new SelectList(stdLibraryForCombo, "Id", "Name", stdlibraryitem.StdLibraryId);
于 2013-07-12T12:04:42.933 回答