2

私はdbからデータを取得しようとしています。

私のコントローラーコード:

var data = datacontext.executequery<dynamic>("select id, name from sometable");
return View(data);

私のビューコード:

@model IEnumerable<dynamic>

@foreach(var item in Model)
{
@item.name
}

そのため、実行すると「オブジェクト」に「名前」の定義が含まれていないというエラーが表示されます

4

1 に答える 1

2

LINQ to SQLに実行datacontext.executequery<dynamic>するように指示しているときは、効果的に実行するように指示しているため、これには機能するビジネスがありません。datacontext.executequery<object>

したがって、クエリが返すものはすべてobjectタイプです。

その理由は、返された型のマッピングは、コンパイル型で渡されたTをリフレクションで検査することによって行われ、動的に渡されたため、コンパイル時にオブジェクトと同等であるためです。

本当にそのようなこと(動的API)を実行したい場合は、Dapperを確認することをお勧めします-http ://code.google.com/p/dapper-dot-net/

于 2012-09-12T21:39:01.587 に答える