câu trả lời được sửa đổi:
tôi nhận ra rằng đã có một cách chính thức để có được những truy vấn Mongo từ một truy vấn LINQ (Tôi đáng lẽ phải biết!). Bạn phải downCast IQueryable < T> để một MongoQueryable < T> để được tiếp cận với phương pháp GetMongoQuery:
var linqQuery = from e in collection.AsQueryable<Entity>() where e.Name == "test" select e;
var mongoQuery = ((MongoQueryable<Entity>)linqQuery).GetMongoQuery();
Original câu trả lời:
Tại thời điểm này không hỗ trợ chính thức cách để làm điều đó , nhưng trong tương lai gần, chúng tôi dự định sẽ giúp bạn dễ dàng tìm ra truy vấn MongoDB truy vấn LINQ đã được ánh xạ tới.
Trong ngắn hạn, bạn có thể sử dụng phương pháp nội bộ không có giấy tờ sau đây để tìm hiểu những gì MongoDB truy vấn các truy vấn LINQ được ánh xạ tới:
var linqQuery = from e in collection.AsQueryable<Entity>() where e.Name == "test" select e;
var translatedQuery = (SelectQuery)MongoQueryTranslator.Translate(linqQuery);
var mongoQuery = translatedQuery.BuildQuery();
Nhưng tại một số điểm bạn có thể cần phải chuyển đổi từ các phương pháp này không có giấy tờ để các phương thức được hỗ trợ chính thức (các phương pháp không có giấy tờ có thể thay đổi hoặc được đổi tên trong tương lai).
Nguồn
2012-04-22 16:01:15
này buồn bã ném đi tất cả các cuộc gọi orderby vào báo cáo kết LINQ gốc. Bạn phải áp dụng chúng trở lại kiểu Mongo. – Nashenas