Saya harapkan, bahwa ini adalah satu cara mengikat (hanya untuk membaca). Dalam skenario ini Anda bisa mendapatkan keuntungan dari Proyeksi. lihat selengkapnya di sini 16.6. Proyeksi
Anda dapat membuat beberapa Objek DTO untuk kisi Anda dan mirip dengan dokumentasi:
CatSummary summaryDto = null;
IList<CatSummary> catReport =
session.QueryOver<Cat>()
.SelectList(list => list
.SelectGroup(c => c.Name).WithAlias(() => summaryDto.Name)
.SelectAvg(c => c.Age).WithAlias(() => summaryDto.AverageAge))
.TransformUsing(Transformers.AliasToBean<CatSummary>())
.List<CatSummary>();
Anda seharusnya dapat melakukannya seperti ini (Saya tidak dapat memeriksanya sekarang, tetapi harus jelas)
LietadloDTO lietadloDTO = null;
dgv.DataSource = session
.QueryOver<Lietadlo>(() => f)
.JoinAlias(() => f.Spolocnostt_Id,() => t)
.JoinAlias(() => f.Typp_Id, ()=> r)
.Where(() => t.Pocetlietadiel > 2)
.And(() => r.Name == "Boeing-747")
.SelectList(list => list
.Select(f => f.Id).WithAlias(() => lietadloDTO.Id)
.Select(t => t.Name).WithAlias(() => lietadloDTO.Name)
...
)
.TransformUsing(Transformers.AliasToBean<LietadloDTO>())
.List<LietadloDTO>()
.ToList<LietadloDTO>();
Jadi, dalam hal ini, Anda akan memaksa NHibernate untuk membuat Proyeksi (hanya 1 klausa SELECT) dan mengembalikan semua data yang diperlukan sekaligus