是否有解决方案来推广这种方法?

时间:2011-06-20 08:21:53

标签: c# nhibernate

我的基本数据访问类中需要一个方法,如下所示:

    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;
    }

有没有解决方案?

1 个答案:

答案 0 :(得分:0)

我不完全清楚你想要推广的是什么,但是:

你说你想懒得加载它们,但是如果你总是立即调用Initialize那么你也可以关闭延迟加载。或者,如果您使用的是Web应用程序,则可以按请求使用会话,忘记必须自己关闭会话并且懒得加载到您内心的内容。