Inleiding
Stel ik heb 't volgende object (dat ook gemapt is):
Employee
----------------
ID
FirstName
LastName
Salary
Er zijn een aantal employees, bijvoorbeeld:
1, John, Doe, 4000
2, Maria, Sharapova, 3500
3, John, Johnson, 3000
4, Theo, Huxtable, 4100
5 ...
6 ...
etc.
Probleem
Nu wil ik alle distinct voornamen ophalen, en bij iedere voornaam alle employees met die voornaam. Dus dat is feitelijk een object met 1 property en een verzameling employees, bijvoorbeeld:
Ik zoek me een ongeluk, maar ik kan geen query vinden die dit resultaat kan geven. Ik had gehoopt dat het volgende zou werken:
Maar dit geeft een lijst terug met telkens een FirstName en een employee met die naam. En dus niet een verzameling van employees:
Vraag
Heeft iemand een idee hoe dit op te lossen is?
Stel ik heb 't volgende object (dat ook gemapt is):
Employee
----------------
ID
FirstName
LastName
Salary
Er zijn een aantal employees, bijvoorbeeld:
1, John, Doe, 4000
2, Maria, Sharapova, 3500
3, John, Johnson, 3000
4, Theo, Huxtable, 4100
5 ...
6 ...
etc.
Probleem
Nu wil ik alle distinct voornamen ophalen, en bij iedere voornaam alle employees met die voornaam. Dus dat is feitelijk een object met 1 property en een verzameling employees, bijvoorbeeld:
code:
1
2
3
4
5
6
| John - 1, John, Doe, 4000 - 3, John, Johnson, 3000 Maria - 2, Maria, Sharapova, 3500 Theo - 4, Theo, Huxtable, 4100 |
Ik zoek me een ongeluk, maar ik kan geen query vinden die dit resultaat kan geven. Ik had gehoopt dat het volgende zou werken:
code:
1
2
3
4
5
6
7
8
| ISQLQuery sql = sess.CreateSQLQuery( "select e1.FirstName as name, {e2.*} " + "from employees e1, employees e2 " + "where e1.FirstName = e2.FirstName ") .AddScalar("name", NHibernateUtil.String) .AddEntity("e2", typeof(Employee)); return sql.List(); |
Maar dit geeft een lijst terug met telkens een FirstName en een employee met die naam. En dus niet een verzameling van employees:
code:
1
2
3
4
| John - 1, John, Doe, 4000 John - 3, John, Johnson, 3000 Maria - 2, Maria, Sharapova, 3500 Theo - 4, Theo, Huxtable, 4100 |
Vraag
Heeft iemand een idee hoe dit op te lossen is?