2011-12-29 14 views
5

Tôi muốn lấy tất cả tài liệu của một số loại của các truy vấn sau đây:RavenDb Bỏ qua mục khi không có điều kiện lọc

var customers = documentSession.Query<Customer>() 

nhưng trong trường hợp này, tôi chỉ nhận được 1 kết quả (trong khi có 78 trong số họ) . Nếu tôi thêm một số điều kiện lọc luôn đúng, tôi nhận được tất cả 78 tài liệu:

var customers = documentSession.Query<Customer>().Where(c => c.Id != null).ToList(); 

Tôi đoán đó là lỗi.

Cập nhật. RavenDb Build 531

Cập nhật 2

Daniel và Oren, xin lỗi vì sự chậm trễ.

Tôi đã chuẩn bị một ứng dụng mẫu. Bạn có thể tải xuống tại đây: http://www.2shared.com/file/AGIAR5UA/RavenDbSampleAppication.html

Có dự án NUnit thử nghiệm tham chiếu SkazhiKazinoNet.Data.Model.dll nơi mô hình được xác định. Tôi vừa thêm gói với RavenDb cuối cùng và dữ liệu đã nhập từ dump4.raven (bạn có thể tìm thấy nó trong các gói/Raven/tools) bởi Raven.Smuggler.

+0

Idsa, Điều đó không đúng, bạn có thể cung cấp thử nghiệm không thành công không? –

+0

@AyendeRahien, hãy nhìn vào Update2 – SiberianGuy

Trả lời

2

Tôi khá chắc chắn rằng không có lỗi như vậy (trong bất kỳ phiên bản gần đây) vì một vài lý do:

  • đây sẽ là một một lớn như vậy, nhiều ứng dụng sẽ phá vỡ
  • có số lượng đơn vị kiểm tra hợp lý sẽ thất bại

Để giúp bạn xác định sự cố - bạn có thể cung cấp thử nghiệm không thành công không?

Hãy đảm bảo rằng bạn cũng gọi số .ToList() trên truy vấn đầu tiên của mình.

+0

Tôi cũng đã rất ngạc nhiên ... Tôi đã xóa thư mục Dữ liệu và dữ liệu bị bỏ qua bởi Raven.Smuggler và bây giờ nó trả về 0 tài liệu thay vì một :) Phiên bản với Where vẫn trả về tất cả các mục. – SiberianGuy

+0

Nghe có vẻ thú vị. Bạn có thể đặt cùng một ứng dụng mẫu nhỏ hoặc thử nghiệm và tải lên github không? –

+0

Vui lòng xem tại Update2 – SiberianGuy

2

Bạn đã đúng, cơ sở dữ liệu bên trong kho lưu trữ của bạn bị hỏng.

Tôi có thể tạo lại lỗi. Truy vấn:

curl -X GET http://localhost:8080/indexes/dynamic/Casinos

lợi nhuận

{"Results":[],"Includes":[],"IsStale":false,"IndexTimestamp":"2011-12-31T02:19:51.2660000","TotalResults":0,"SkippedResults":0,"IndexName":"LastComments","IndexEtag":"00000000-0000-0100-0000-000000000078"} 

Sau đó, tôi đã xóa tất cả các chỉ mục và khởi động lại máy chủ. Bây giờ truy vấn trả về kết quả chính xác. Vì vậy, sau khi bạn xóa tất cả các chỉ mục của mình và tạo lại chúng, nó cũng sẽ hoạt động trên máy của bạn.

Tôi xin lỗi nhưng tôi không thể cung cấp thêm bất kỳ thông tin nào về điều đó, có thể Oren có thể.

+0

Bạn có ý nghĩa gì khi "xóa tất cả chỉ mục"? Xóa thư mục Chỉ mục? – SiberianGuy

+0

Studio quản lý bên trong, mở từng chỉ mục một và xóa chúng. –