2011-06-20 54 views
0

我需要一种方法在我的基本数据访问类是这样的:是否有解决方案来推广此方法?

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

我不完全清楚什么是你想要要概括,但:

你说你想懒洋洋地加载它们,但如果你总是立即调用Initialize那么你不妨去求助于懒惰加载关闭。或者,如果您在网络应用程序中,则可以为每个请求使用会话,而不必关闭自己的会话并延迟加载至您的内容。

+0

我有一个Windows应用程序。我懒惰地加载我的实体,但在某些情况下,我希望加载这些实体。现在我想在我的dao类的基类中添加一个通用方法来加载一个实体以及它的依赖实体。我不想在每个dao类中写一个方法。 –

相关问题