Tôi đang sử dụng Fluent NHibernate cho ORM của tôi. Trong khi làm như vậy tôi đang cố gắng sử dụng cú pháp LINQ NHibernate để lấy một bộ dữ liệu với sức mạnh của LINQ. Mã tôi đã làm việc và thực hiện đúng với ngoại lệ là một thời gian chờ được ném nếu mất nhiều thời gian hơn khoảng 30 giây để chạy. Câu hỏi tôi có là làm cách nào để mở rộng thời gian chờ 30 giây mặc định cho các câu lệnh LINQ qua NHibernate?Làm thế nào để đặt thời gian chờ cho NHibernate LINQ tuyên bố
Tôi đã nhìn thấy các bài viết here, here, và here nhưng hai người đầu tiên đề cập đến thiết lập thuộc tính Timeout của DataContext, mà không áp dụng ở đây, và thứ ba liên quan đến thiết lập thời gian chờ trong XML, mà cũng không áp dụng bởi vì tôi đang sử dụng Fluent NHibernate để tạo XML một cách nhanh chóng. Không chỉ vậy, nhưng bài viết là 2 tuổi và Fluiber NHibernate đã thay đổi kể từ đó.
Với các đối tượng ICriteria và thậm chí HQL tôi có thể chỉ định thời gian chờ, tuy nhiên đó không phải là mục tiêu ở đây. Tôi muốn biết làm thế nào để thiết lập thời gian chờ đó và sử dụng LINQ.
Ví dụ mã:
using (var session = SessionFactory.OpenSession())
using (var transaction = session.BeginTransaction())
{
var query = (from mem in session.Query<Member>()
select mem);
query = query.Where({where statement});
int start = (currentPage - 1) * max);
if (start > 0)
query = query.Skip(start).Take(max);
else
query = query.Take(max);
var list = query.ToList();
transaction.Commit();
return list;
}
Mã này (trong đó tuyên bố không quan trọng) làm việc cho tất cả các mục đích trừ trường hợp một thời gian chờ xảy ra.
Mọi trợ giúp đều được đánh giá cao. Cảm ơn trước!
Kiểm tra câu trả lời của kingpin2k. Làm việc tuyệt vời cho tôi. –