2011-01-27 34 views
5

Tôi vừa mới bắt đầu sử dụng LINQ với NHibernate trong NHibernate 3, sau khi sử dụng ICriteria trước đây.NHibernate 3 LINQ truy vấn bộ nhớ đệm

Dưới đây là một truy vấn Ví dụ:

ISession session = NHibernateSessionManager.Instance.GetSession(); 

var results = from project in session.Query<Project>() 
       where project.ProjectState == ProjectState.Archive 
       orderby project.ProjectNumber 
       select project; 

return results.ToList(); 

Làm thế nào để thiết lập đó để bộ nhớ cache? Tôi đã có một cái nhìn xung quanh và các câu hỏi khác dường như sử dụng một cú pháp khác (có lẽ đã lỗi thời?), Hoặc có lẽ tôi đang làm sai ...

+0

Hãy thử "results.Cacheable(). ToList();" – Phill

Trả lời

9

Sử dụng phương pháp mở rộng Cacheable() trên truy vấn trước khi gọi ToList().

+0

Tôi không nghĩ rằng có bất kỳ tài liệu chính thức nào được nêu ra ... Tôi bắt đầu cập nhật các tài liệu hiện có một vài tháng trước đây, nhưng bị mất động lực. Tôi tin nó được đề cập trong quyển sách của Jason Dentler. –

Các vấn đề liên quan