ビュー内からActiveRecordモデルの遅延読み込みプロパティにアクセスする方法を教えてください。ASP.NET MVC 1.0とCastle ActiveRecord 2.0遅延読み込み
私は私が私のコントローラ
で次の作業を実行して、私の見解では遅延ロードされたプロパティにアクセスすることができるよ=真レイジーとしてマークされ、どちらもカテゴリーのモデルに属しニュースモデルを、持っています
using (new SessionScope())
{
results = _service.FindAllNews(start, pageSize, new[] { Order.Asc("Id") });
foreach (var result in results)
{
var category = result.Category;
}
}
return View(results);
はその後、私の見解では、私は結果を解析して、私はプロパティ私を参照しない場合は、次の
明らか<%= Html.Encode(item.Category.Title) %>
とカテゴリのタイトルを表示します私のコントローラでは、ビュー内のプロパティを呼び出そうとしたときにセッションスコープのエラーが発生します。
しかし、これは私にとっては間違っているようです。ビューに到達する前にモデルの遅延ロードされたプロパティを初期化するより良い方法はありますか?私は、モデルにInit関数を書くことができると思いますが、それもうんざりしているようです。
私は通常のNHibernateで同じことに遭遇しました。 BeginRequestとEndRequestにトランザクションを移動させなければならなかった。 – mxmissile
あなたのコメントは答え、mxmissileでなければなりません。要求ごとに単一のSessionScopeを持つことで問題は解決しますが、自動フラッシュを使用する場合は注意が必要です。 – wtaniguchi
そうですが、私はARのSessionScopeやARには慣れていませんが、transacitonの使用法が通常のNHibernateと同じであるかどうかわかりません。言い換えれば、修飾されていないと感じました。;-) – mxmissile