Tôi đã có truy vấn LINQ đơn giản này trong NHibernate 3.2 và cung cấp SQLite:cung cấp NHibernate LINQ và mất() skip() với háo hức lấy
var all = (from book in Session.Query<Book>() select book)
.Skip(15)
.Take(15)
.ToList();
Truy vấn này trả về đúng 15 đơn vị, nhưng khi tôi cố gắng mong muốn tải một bộ sưu tập phụ thuộc với FetchMany như thế này:
var all = (from book in Session.Query<Book>() select book)
.FetchMany(books => books.Authors)
.Skip(15)
.Take(15)
.ToList();
Tôi chỉ nhận được 11 thực thể. Đây có phải là một lỗi hoặc một cái gì đó tôi đang mất tích?
Dưới đây là kết quả truy vấn 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 */
này có hiệu quả hạn chế kết quả thiết lập để 15 hàng và không 15 đơn vị như tôi dự định.
Âm thanh như NHibernate đang tạo ra một kết nối bên trong khi cần tạo một kết nối bên trái. Tôi muốn có một cái nhìn thêm vào các ánh xạ cho các tác giả bất động sản. –
Tôi đoán, đây không phải là vấn đề bởi vì tôi có ít nhất một tác giả cho mỗi cuốn sách. Và khi tìm nạp các tác giả trong vòng lặp foreach cho mỗi cuốn sách, tôi nhận được kết quả chính xác. – zszep
Điều thú vị là, tôi nhận được 15 hàng trả lại, nhưng chỉ có 11 thực thể. Hai cuốn sách có hai tác giả và một cuốn sách có ba tác giả. Tôi có chính xác rằng bỏ qua và lấy nên hạn chế số lượng thực thể trả lại và không phải hàng? – zszep