私は特にMVCとlinqとviewmodelsでかなり新しいです。私は、作成するためのインデックスビューを取得することができました。 「挿入」は「リスト」ほど難しくありませんでした。このlinqコードからforeachを削除するにはどうすればよいですか?
私はこのLINQクエリ持っている:私はわからないんだけど何
public ActionResult Index()
{
List<BlendElVM> BEVM = new List<BlendElVM>();
var list = (from Blend in db.blends
join BlendEl in db.blendEl on Blend.ID equals BlendEl.ID
select new
{
Blend.ID, Blend.Title, Blend.TransDt, BlendEl.Comment
}).ToList();
foreach (var item in list)
{
BlendElVM o = new BlendElVM(); // ViewModel
o.Comment = item.Comment;
o.Title = item.Title;
o.TransDt = item.TransDt;
o.ID = item.ID;
BEVM.Add(o);
}
return View(BEVM);
}
は "foreachの" セクションです。私がデバッグで走っているとき、 "リスト"はうまく表示されますが、私が "foreach"をコメントアウトするとエラーが発生します。つまり、モデルを期待していません。 foreachは何をしていますか?データベースと関係がありますが、 "o"を使用している場所と列を設定する場所はわかりません。私はそれがすべて1つのlinqクエリにあると思った。 2つを組み合わせて "foreach"を削除することは可能ですか?
私はforeachのは、あなたが持っているこの場合にオブジェクトのすべての要素を読み取るために必要であると信じてい
model-view-controllerタグはパターンに関する質問のためのものです。 ASP.NET-MVCの実装には特定のタグがあります。 –
クエリは、匿名オブジェクトのコレクションを作成しています。ビューは 'BlendElVM'のコレクションを期待しているので、ループはクエリが返す値に基づいてそのオブジェクトのコレクションを生成しています - 必ずしも必要ではありません - Robert Harveyのようにビューモデルにクエリを投影できます回答。 –