2010-07-27 73 views
0

早些時候,我問了這個問題:Loop in MySql, or alternative? 我得到了一個很好的答案,它確實有效。現在在我的應用程序中,我使用NHibernate(在C#.NET 3.5中)作爲DAL。我真的不知道如何處理多個返回類型,所以我嘗試了以下內容:NHibernate的多種返回類型

var session = NHibernateHelper.GetCurrentSession(); 
      IQuery query = session.CreateSQLQuery(@"SELECT * FROM tableA AS A 
                LEFT JOIN tableB AS ctrl1 ON (A.controlID = ctrl1.controlID AND ctrl1.controlOptionType = ? AND ctrl1.controlOptionValue = ?) 
                LEFT JOIN tableB AS ctrl2 ON (A.controlID = ctrl2.controlID AND ctrl2.controlOptionType = ? AND ctrl2.controlOptionValue = ?)") 
                    .AddEntity(typeof(nodecontrol)); 



      IList<tableA> aList = query.List<tableA>(); 
      IList<tableB> bList = query.List<tableb>(); 

這曾與ALIST。但是,當我爲tableB添加另一個「AddIdentity」時,它會在它到達aList部分時死亡,因爲它的對象類型是錯誤的。 現在我想我可以在那個List上做一個LINQ WHERE來獲取每個類型的數據(但我不知道如何),然後,我怎麼從tableB的兩個實例中區分出每行會得到的?

最好我想結束3列表(tableA,tableB,tableB)行內聯,所以aList [4]將與bList1 [4]和bList2 [4]相同的結果行。

謝謝:)

回答