मैं उम्मीद करता हूं कि यह एक तरह से बाध्यकारी है (सिर्फ पढ़ने के लिए)। इस परिदृश्य में आप अनुमानों से लाभ उठा सकते हैं। यहां और देखें 16.6. अनुमान
आप अपने ग्रिड के लिए और दस्तावेज़ीकरण के समान कुछ डीटीओ ऑब्जेक्ट बना सकते हैं:
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>();
आपको इसे इस तरह करने में सक्षम होना चाहिए (मैं अभी इसकी जांच नहीं कर सकता, लेकिन यह स्पष्ट होना चाहिए)
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>();
तो, इस मामले में, आप NHibernate को प्रोजेक्शन (केवल 1 SELECT क्लॉज) बनाने के लिए बाध्य करेंगे और एक ही बार में सभी आवश्यक डेटा वापस कर देंगे