2012-01-23 58 views
36

Tôi đã nhận được lỗi trên một trong các trang của mình mà truy vấn LINQ đã hết hạn vì quá trình này mất quá nhiều thời gian. Nó làm cho trang không sử dụng được.Thời gian chờ LINQ-to-SQL

Đó là trang báo cáo chỉ được quản trị viên truy cập khoảng một lần mỗi ngày. Đó là không thể tránh khỏi để cắt giảm truy vấn này ở tất cả, nó chỉ có để sắp xếp thông qua rất nhiều dữ liệu.

Giải pháp khắc phục điều này tôi đã đọc là bằng cách tăng thuộc tính thời gian chờ trong ngữ cảnh dữ liệu, nhưng tôi muốn tránh làm điều đó vì nó sẽ thay đổi nó cho toàn bộ trang web.

Có cách nào để đặt thời gian lớn hơn cho các trang riêng lẻ không?

Trả lời

55

Chỉ cần tìm thấy câu trả lời chơi với IntelliSense:

using (MainContext db = new MainContext()) 
{ 
    db.CommandTimeout = 3 * 60; // 3 Mins 
} 

Đây là cách bạn có thể tăng thời gian ra cho một truy vấn trên cơ sở mỗi truy vấn như phải sửa đổi chuỗi kết nối hoặc bối cảnh dữ liệu.

+3

Nếu bạn muốn đặt thời gian chờ không xác định, hãy đặt thành 0. – vcRobe

4

Câu trả lời của Tom Gullen là câu trả lời hay nhất.

Một người trả lời khác đã đề cập thiết lập Thời gian chờ kết nối trong chuỗi kết nối.
Tôi muốn cảnh báo rằng thuộc tính thời gian chờ kết nối của chuỗi kết nối KHÔNG phải là thời gian chờ của lệnh. Rõ ràng hơn khi bạn nghĩ về nó. Đó là một sai lầm phổ biến.

+0

upvote để làm rõ – Oxymoron

-1

Trước khi tăng thời gian chờ SQL, luôn luôn đánh giá chiến lược lập chỉ mục của bạn. Thật hiếm khi, theo kinh nghiệm của tôi, một truy vấn đối với một bảng và các cột được lập chỉ mục tốt sẽ hết thời gian chờ.

Des Owen

+1

Xin chào, chào mừng bạn đến với SO. Ngay cả khi điều này là rất xây dựng, nó không chính xác là một câu trả lời và nên là một bình luận. Bạn có thể nhận xét khi bạn kiếm đủ danh tiếng. Chúc mừng! – Cthulhu

10

@ Tom Gullens câu trả lời không làm việc cho tôi trên EF6

tôi phải đi sâu vào cơ sở dữ liệu trên DbContext

Ecom.Database.CommandTimeout = 120;

Hy vọng điều này giúp bạn tiết kiệm thời gian .

+5

linq-to-sql! = EF – djv

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