Sono pigro nel caricare le raccolte, e anche perché ci sono tanti campi nella tabella delle persone, sto scrivendo una funzione di proiezione per recuperare solo determinate proprietà. Funziona con proprietà, ma non con raccolte di altre entità. Sarei perfetto se fossero caricati come proxy e potrei averli in seguito, ma in questo momento si carica solo in null.Come utilizzare le Proiezioni NHibernate per recuperare una collezione
public IList<Person> ListTop40()
{
var list = _session.CreateCriteria(typeof(Person))
.SetProjection(Projections.ProjectionList()
.Add(Projections.Property("FirstName"))
.Add(Projections.Property("LastName"))
.Add(Projections.Property("Jersey"))
.Add(Projections.Property("FortyYard"))
.Add(Projections.Property("BenchReps"))
.Add(Projections.Property("VertJump"))
.Add(Projections.Property("ProShuttle"))
.Add(Projections.Property("LongJump"))
.Add(Projections.Property("PersonSchoolCollection"))
)
.List<IList>()
.Select(l => new Person() { FirstName = (string)l[0], LastName = (string)l[1], Jersey = (Decimal)l[2], FortyYard = (Decimal)l[3], BenchReps = (Decimal)l[4], VertJump = (Decimal)l[5], ProShuttle = (Decimal)l[6], LongJump = (Decimal)l[7], PersonSchoolCollection = (IList<Person_School>)l[8]});
IList<Person> s = list.ToList();
return s;
}
ho circa 80 proprietà, quindi è davvero necessario in questa situazione, sono abbastanza sicuro di non poterlo recuperare con questo codice, ma penso che ci sia un modo con le proiezioni di essere in grado di recuperare solo 1 di molte collezioni. – luke
in In tal caso, potresti avere più fortuna nel gruppo nhusers su gruppi google – sirrocco
Ho è pubblicato lì. Se ricevo una risposta, non posso postarla qui. Grazie. – luke