1

DropDownListを埋めるために次のメソッドを作成しましたが、機能します。ただし、そこにある理解クエリの代わりに、SelectList初期化子の最初のパラメーターとしてLambda式を使用して、適切なLINQクエリを記述したいと思います。私の目標は、EventmオブジェクトのEventmIdプロパティとEventmTitleプロパティを連結して、DropDownListに選択範囲として表示することです。

ありがとうございました!

     private void PopulateEventmsDropDownList(object selectedEventm = null)
            {
                var eventmsQuery = unitOfWork.EventmRepository.Get(
                                       orderBy: q => q.OrderBy(d => d.EventmId));

                ViewBag.EventmID = new SelectList(
                (from s in eventmsQuery select new { EventmId = s.EventmId.ToString(),
                FullID = s.EventmId + " " + s.EvtTitle }),
                "EventmId", "FullID", selectedEventm);
            }
4

1 に答える 1

1

LINQPadを使用して試行錯誤した後、次のようにSelectListでこのLambda式(理解クエリを置き換えるため)を思いつきました。

private void PopulateEventmsDropDownList(object selectedEventm = null)
    {
        var eventmsQuery = unitOfWork.EventmRepository.Get(
             orderBy: q => q.OrderBy(d => d.EventmId));

        ViewBag.EventmID = new SelectList(nodesQuery.Select(
             x => new {x.NodeId, FullID =  string.Join(
             "  ", x.NodeId.ToString(), x.Title) }), "EventmId", "FullID", selectedEventm);
    }
于 2012-11-16T23:37:48.880 に答える