データベースからデータを取得し、コントローラーとビューを介して視覚化する場合、ASP.NET MVCとentityframeworkの概念をエレガントで堅牢な方法でどのように組み合わせるのですか?
以下の例では、usingステートメントが閉じられた後にビューが表示されるため、Dispose例外がスローされます。
// code in controller
using (var usersDb = new UsersDb(new WebSecurityWrapper()))
{
var user = usersDb.GetUser(User.Identity.Name);
return View(user);
}
// code in usersDb model -- GetUser method
public User GetUser(string name)
{
var id = _webSecurity.GetUserId(name);
var user = Users.FirstOrDefault(usr => usr.Id == id);
return user;
}
非常に明白ですが、私が考えることができる唯一の代替手段は、ビューが独立して表示できるようにユーザーオブジェクトを「複製」することです。それは正しくないと思います。
では、これを行う適切な方法は何ですか?