Oki I understand now why there're saverals queries.
And I decided to use criterias because I couldn't use fetch in my CreateQuery
Code:
Customer customerWithData = sess.CreateCriteria(typeof(Customer))
.SetFetchMode("ClassB", FetchMode.Eager)
.SetFetchMode("ClassC", FetchMode.Eager)
.SetFetchMode("Addresses", FetchMode.Eager)
// .CreateAlias("Addresses", "add")
.Add(Expression.Eq("Id", id))
//.Add(Expression.Eq("add.Valid", 't'))
.List<Customer>()[0];
But I don't know to load only a part of a collection. For exemple I want to only load valids addresses. I tried to use an alias and use the alias with the expression like I let in comment.
So for the moment I load every adresse. If someone can help it'll be great
Thank you