2009-07-03 9 views
0

私は次の問題に直面しています。 コントローラで必要なデータを選択してViewDataに格納します。ASP.NET MVCとEntity Framework:クエリの永続性

using (Models.SkedruleEntities ctx = new Models.SkedruleEntities()) 
{ 
    ViewData["users"] = (from u in ctx.User select u); 
} 
私はこのようなViewDataをから読み取るしようとするビューで

<p> 
    <%foreach(User user in (IEnumerable<User>)ViewData["users"]) { %> 
     <div><%=user.Name %></div> 
    <%}%> 
</p> 

しかし、私はシステムを取得します。 ObjectDisposedExceptionエラー、ViewDataにはクエリが含まれているように見えますが、クエリによって取得されたデータではなく、もちろんコンテキストctxは利用できません。

助けが必要ですか? おかげ

答えて

2

あなたはビューのデータではなく、結果にクエリを保存しています。ビューでは、クエリを取得して実行します。その瞬間、文脈はすでに処分されている。

溶液をコントローラにクエリを実行し、ViewDataをに結果を格納することである。

ViewData["users"] = (from u in ctx.User select u).ToList(); 
2

ちょうどToList()を追加します。

ViewData["users"] = (from u in ctx.User select u).ToList(); 
関連する問題