보기 내에서 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) %>
과 카테고리 제목을 표시 n 컨트롤러에서보기에서 속성을 호출 할 때 세션 범위 오류가 발생합니다.
그러나 이것은 나에게 잘못되었습니다. 보기에 도달하기 전에 모델의 지연로드 속성을 초기화하는 더 좋은 방법이 있습니까? 모델에 Init 함수를 작성할 수 있다고 가정합니다.하지만 역시 불안정한 것처럼 보입니다.
나는 정규 NHibernate로 같은 일을 만났다. BeginRequest와 EndRequest로 트랜잭션을 이동시켜야했습니다. – mxmissile
귀하의 의견은 대답, mxmissile이어야합니다. 하나의 요청마다 하나의 SessionScope를 가짐으로써 문제를 해결할 수 있지만, 자동 플러시를 사용할 때는주의해야합니다. – wtaniguchi
그래,하지만 그 문제에 대해서는 AR의 SessionScope 또는 AR에 익숙하지 않은데, transaciton 사용법이 일반 NHibernate와 다른지, 다른 말로하면 자격이 있다고 느끼지는 않았다. ;-) – mxmissile