Supposons que je la structure de classe suivante:NHibernate se collecte dans une autre collection lors de la requête
public class State
{
public int Id { get; set; }
public DateTime StatehoodDate { get; set; }
public IList<City> CityList { get; set; }
}
public class City
{
public int Id { get; set; }
public string CityName { get; set; }
}
liée aux tableaux suivants NHibernate:
CREATE TABLE tblState (
StateId int,
StatehoodDate datetime,
)
CREATE TABLE tblCity {
CityId int,
StateId int,
CityName varchar(1000)
}
* Note: Supposons pour cet exemple, il y a seulement 5-10 villes par état. Ceci est un exemple obscurci. *
Je veux obtenir tous les états avec une StatehoodDate après 1900. Je veux également une liste des villes dans cet état chargé automatiquement, donc pas de chargement paresseux. Comment puis-je interroger cela dans NHibernate dans une seule requête? (HQL, Criteria, etc n'a pas d'importance - je vais utiliser tout ce qui fonctionne.)
J'espère qu'il y a un moyen de récupérer toutes les données dans une requête, puis faire un équivalent de "GROUP BY" à obtenir une liste de seulement les états avec un StatehoodDate après 1900. Dans mon exemple, je vais toujours afficher les villes chaque fois que cette requête est exécutée.
chargement Lazy est évidemment une option, mais il y a un coup de performance, car il y aurait la requête initiale (la date), puis une requête