我有一個UnitOfWork/Service模式,在將模型發送到視圖之前,使用NHibernate填充我的模型。出於某種原因,我仍然得到YSOD,我不明白爲什麼對象集合尚未填充。會話已關閉! NHibernate不應該試圖抓取數據
我控制器的方法是這樣的:工作
public ActionResult PendingRegistrations()
{
var model = new PendingRegistrationsModel();
using (var u = GetUnitOfWork())
{
model.Registrations = u.UserRegistrations.GetRegistrationsPendingAdminApproval();
}
return View(model);
}
服務/單元看起來是這樣的:
public partial class NHUserRegistrationRepository : IUserRegistrationRepository
{
public IEnumerable<UserRegistration> GetRegistrationsPendingAdminApproval()
{
var r =
from UserRegistration ur in _Session.Query<UserRegistration>()
where ur.Status == AccountRegistrationStatus.PendingAdminReview
select ur;
NHibernateUtil.Initialize(r);
return r;
}
}
我在做什麼錯?
你可以嘗試設置的集合作爲'.Not.LazyLoad()' –
您的映射是什麼意思?我確實嘗試過,但它似乎沒有做任何事情。 –
調用NHibernateUtil.Initialize()之前r的值是什麼? – Maciej