मैं NHibernate 3.2 में इस सरल LINQ क्वेरी मिल गया है और SQLite प्रदाता के साथ ले() को छोड़ (:NHibernate LINQ प्रदाता और) उत्सुक प्राप्त करने में कठिनाई
var all = (from book in Session.Query<Book>() select book)
.Skip(15)
.Take(15)
.ToList();
इस क्वेरी सही ढंग से रिटर्न 15 संस्थाओं, लेकिन जब मैं करने की कोशिश FetagerMany के साथ एक आश्रित संग्रह को उत्सुक लोड करें:
var all = (from book in Session.Query<Book>() select book)
.FetchMany(books => books.Authors)
.Skip(15)
.Take(15)
.ToList();
मुझे केवल 11 इकाइयां मिलती हैं। क्या यह एक बग या कुछ है जो मुझे याद आ रही है?
यहाँ जिसके परिणामस्वरूप SQL क्वेरी
select
book0_.Id as Id2_0_,
author2_.Id as Id0_1_,
book0_.Title as Title2_0_,
book0_.Sort as Sort2_0_,
book0_.TimeStamp as TimeStamp2_0_,
book0_.PubDate as PubDate2_0_,
book0_.Series_Index as Series6_2_0_,
book0_.Author_Sort as Author7_2_0_,
book0_.Isbn as Isbn2_0_,
book0_.Lccn as Lccn2_0_,
book0_.Path as Path2_0_,
book0_.Flags as Flags2_0_,
book0_.Uuid as Uuid2_0_,
book0_.Has_Cover as Has13_2_0_,
book0_.Last_Modified as Last14_2_0_,
author2_.Name as Name0_1_,
author2_.Sort as Sort0_1_,
author2_.Link as Link0_1_,
authors1_.book as book0__,
authors1_.author as author0__
from
books book0_
left outer join
books_authors_link authors1_ on book0_.Id=authors1_.book left outer join authors author2_
on authors1_.author=author2_.Id
order by book0_.Id asc
limit 15 /* @p0 */ offset 0 /* @p1 */
यह प्रभावी रूप से परिणाम 15 पंक्तियों के लिए सेट सीमित करता है और नहीं के रूप में 15 संस्थाओं मैं करने का इरादा है।
एनएचबर्ननेट जैसे लगता है कि यह एक बाएं शामिल होने पर आंतरिक जुड़ना उत्पन्न कर रहा है। मैं संपत्ति लेखकों के लिए मैपिंग पर एक अतिरिक्त नज़र डालेगा। –
मुझे लगता है, यह समस्या नहीं है क्योंकि मेरे पास प्रत्येक पुस्तक के लिए कम से कम एक लेखक है। और जब प्रत्येक पुस्तक के लिए फ़ोरैच लूप में लेखकों को लाते हैं, तो मुझे सही परिणाम मिलते हैं। – zszep
दिलचस्प बात यह है कि मुझे 15 पंक्तियां मिलती हैं, लेकिन केवल 11 इकाइयां होती हैं। दो पुस्तकों में दो लेखकों हैं और एक पुस्तक में तीन लेखकों हैं। क्या मैं उस स्किप को सही करता हूं और वापस लौटाई गई इकाइयों की संख्या को सीमित करना चाहिए, न कि पंक्तियां? – zszep