2012-02-03 124 views
0

我有3個類,Addin,應用程序和數據庫。每個插件可以有很多應用程序,每個應用程序只有一個數據庫。我想獲得1個插件並使用他們的數據庫獲取所有應用程序。如何從集合中獲取對象?

外接< - >應用程序= 1:米
應用< - >數據庫= 1:1

此查詢僅提取的應用程序。如何獲取數據庫:

var result session.CreateCriteria<Addin>() 
      .SetFetchMode("applications", FetchMode.Eager) 
      .Future<Addin>(); 

    result.ToList(); 
+0

除非Criteria在Hibernate和NHibernate中的工作方式不同,否則您應該可以在屬性上使用SetFetchMode(「Database」,FetchMode.Eager)。 – 2012-02-03 14:08:06

+0

它不在NHibernate中工作。 – mynkow 2012-02-03 14:10:56

+0

啊,我誤解你的聯想,認爲數據庫是Addin上的一個屬性。 – 2012-02-03 14:18:25

回答

0

嘗試使用連接或您可以更改映射選項與應用程序一起加載數據庫(我假設的模型,你有數據庫的應用程序的性能)

它看起來不行。像

session.QueryOver<Addin>() 
       .JoinAlias(x => x.Database,() => database) 
       .ToList(); 
+0

我沒有財產,但字段。 Addin不知道數據庫。 – mynkow 2012-02-03 14:11:23

+0

試試這個:我不知道有關語法(無編輯器中打開) '會議 .CreateCriteria () .CreateAlias( 「應用程序」, 「應用程序」) .CreateAlias( 「apps.Database」 ,「db」) .SetFetchMode(「applications」,FetchMode.Join) .SetFetchMode(「apps.Database」,FetchMode.Join)' – 2012-02-03 14:19:12

+0

我今天早些時候嘗試過,它說應用程序prop不存在:( – mynkow 2012-02-03 14:27:29