开发者

Multiple return types from NHibernate

开发者 https://www.devze.com 2023-01-08 19:02 出处:网络
Earlier I asked this question: Loop in MySql, or alternative? I got a great answer and it does work. Now in my application I am using NHibernate(in C# .NET 3.5) as the DAL. I dont really know how to d

Earlier I asked this question: Loop in MySql, or alternative? I got a great answer and it does work. Now in my application I am using NHibernate(in C# .NET 3.5) as the DAL. I dont really know how to deal with multiple return types, so I tried the following:

    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>();

This worked with aList. But when I add another "AddIdentity" for tableB it dies when it gets to the aList part because its the wrong type of object. Now I presume I can just do a linq WHERE on that List to get the types for each(but I dont know how), and after that, how do I differentiate from the two instances of tableB that I will get per row?

Preferably I would like to end up with 3 l开发者_如何学编程ists(tableA, tableB, tableB) where the rows are inline so aList[4] will be the same result row as bList1[4] and bList2[4].

Thanks :)


I believe Multi Query is the solution that you're looking for.

0

精彩评论

暂无评论...
验证码 换一张
取 消