私は周りを検索し、ExpandDo を動的に使用することについて話しましたが、LINQ クエリから返されたコレクションでこれを行う方法を理解できませんでした。
データベースで 2 つのテーブル (学生と登録) の間で内部結合を行っています。
var innerJoin =
from e in db.Enrollments
join s in db.Student on e.StudentID equals s.StudentID
select new { Student= s.Name , Course = e.CourseID };
私はもう試した
dynamic model = innerJoin.ToList().ToExpando();
return View(model)
そして、私が持っています
@model System.Collections.Generic.IEnumerable<dynamic>
私のView.cshtmlの上部に
しかし、Web アプリケーションでコントローラーに移動しようとすると、次のエラーが発生します。
ディクショナリに渡されたモデル項目は「System.Dynamic.ExpandoObject」型ですが、このディクショナリには「System.Collections.Generic.IEnumerable`1[System.Object]」型のモデル項目が必要です。''
私も試しました:
dynamic model = innerJoin.ToList();
return View(model);
しかし、私の見解(.cshtmlファイル)では
@foreach (dynamic item in Model)
{
<tr>
<td>
@Html.Raw(item.Course)
</td>
</tr>
}
@Html.Raw 行で barf します
タイプ 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException' の例外が App_Web_index.cshtml.1bbec3a6.jtomobws.dll で発生しましたが、ユーザー コードで処理されませんでした
理想的にはワンライナーにしたいです。私の見解では、プロパティ バッグのコレクションを反復処理して、Student フィールドと Course フィールドを抽出できるようにしたいと考えています。したがって、プロパティ バッグには Student プロパティと Course プロパティが含まれ、それらのコレクションになります。私は多くの同様の投稿を見てきましたが、誰もこれを行っていません
ありがとうトーマス