This line fails because for some reason, i cant get MultiQuery return
anything other than array of object[].
Transformers does not work either with MultiQuery.

var persons_one = oList[0] as IEnumerable<PersonDTO>;

On 2 avr, 16:58, Jason Meckley <[email protected]> wrote:
> mutliequery returns multiple result sets which can be anything, hence
> IList instead of IList. In this instance the number of items in oList
> is known because you executed 2 queries. they just happen to return
> the same result type. cast each item in the list and combine.
>
> var oList = oMultiQuery.List();
> var persons_one = oList[0] as IEnumerable<PersonDTO>;
> var persons_two = oList[1] as IEnumerable<PersonDTO>;
> var all_persons = persons_one.Concat(persons_two);
>
> or, if your using .net 2.0
>
> var oList = oMultiQuery.List();
> var persons_one = oList[0] as IEnumerable<PersonDTO>;
> var persons_two = oList[1] as IEnumerable<PersonDTO>;
>
> var all_persons = new List<PersonDTO/>();
> all_persons.AddRange(persons_one);
> all_persons.AddRange(persons_two);
>
> On Apr 2, 8:51 am, similitude2009 <[email protected]> wrote:
>
>
>
> > I use a class PersonDTO to get a lighter Person class.
>
> > class Person
> > {
> > string FirstName{get,set};
> > string LastName{get,set};
> > string Age{get,set};
>
> > }
>
> > class PersonDTO
> > {
> > string FirstName{get,set};
> > string LastName{get,set};
>
> > }
>
> > if i do a simple (notice the 'new' in the query)
>
> > ISession oSession = GetSession();
> > IQuery oQuery = oSession.CreateQuery("from Person p select new
> > PersonDTO(p.FirstName,p.LastName) where p.Age = 10");
> > IList<PersonDTO> oList  = oQuery.List<PersonDTO>();
> > oSession.Close();
> > ISession oSession = GetSession();
>
> > I get an IList<PersonDTO> as result, which is fine, but when i do it
> > with multi query, i get IList<ArrayList> of Object[], which is very
> > hard to reuse.
> > I m trying to get the syntax of Transformers with multiqueries.
>
> > IMultiQuery oMultiQuery = oSession.CreateMultiQuery();
>
> > IQuery oQuery1 = oSession.CreateQuery("from Person p select new
> > PersonDTO(p.FirstName,p.LastName) where p.Age = 10");
> > IQuery oQuery2 = oSession.CreateQuery("from Person p select new
> > PersonDTO(p.FirstName,p.LastName) where p.Age = 20");
>
> > oMultiQuery.Add(oQuery1);
> > oMultiQuery.Add(oQuery2);
>
> > IList oList  = oMultiQuery.List();
>
> > oSession.Close();
>
> > I get an IList of ArrayList in as the result of the multiquery in
> > oList, each ArrayList of this oList is Object[]
>
> >  I tried to add some of these commands but none does anything
> > oQuery1.AddResultTransformer(Transformers.AliasToBean(typeof
> > (PersonDTO)));
> > oQuery1.AddResultTransformer(Transformers.AliasToEntityMap);
> > oMultiQuery.AddResultTransformer(Transformers.AliasToBean(typeof
> > (List<PersonDTO>)));
> > oMultiQuery.AddResultTransformer(Transformers.AliasToBean(typeof
> > (PersonDTO)));
>
> > I would like to get an IList<PersonDTO> or IList<IList<PersonDTO>>.- 
> > Masquer le texte des messages précédents -
>
> - Afficher le texte des messages précédents -
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to