我的基本数据访问类中需要一个方法,如下所示:
public virtual void InitializaEntity(T entity, object relatedEntity)
{
using (session)
{
T mergedEntity = (T)session.Merge(entity);
NHibernateUtil.Initialize(relatedEntity);
}
}
我想懒洋洋地将相关对象初始化为主对象。我可以为每个关系使用下面的方法,但我想概括一下这个方法。
public Keyword GetKeywordCategoryByKewordId(long id)
{
Keyword k = session.Get<Keyword>(id);
NHibernateUtil.Initialize(k.Categories);
session.Close();
return k;
}
有没有解决方案?
答案 0 :(得分:0)
我不完全清楚你想要推广的是什么,但是:
你说你想懒得加载它们,但是如果你总是立即调用Initialize
那么你也可以关闭延迟加载。或者,如果您使用的是Web应用程序,则可以按请求使用会话,忘记必须自己关闭会话并且懒得加载到您内心的内容。