Tôi đang làm việc trên ứng dụng MVC 5 sử dụng Khuôn khổ thực thể 6.1.3. Tôi đang cố gắng tối ưu hóa cuộc gọi đầu tiên, thường mất 1-4 giây, bằng cách tạo trước lượt xem. Tôi hiểu tại sao điều này xảy ra, nhưng tôi cảm thấy như tôi đang thiếu một bước quan trọng ở đâu đó.Khung thực thể tạo trước Lượt xem
Thử nghiệm hiện tại của tôi chạy cùng chức năng năm lần để lấy một tập hợp các đối tượng từ DB của tôi bằng EF. Khi tôi chạy này với 'Nhúng trong Output mục' bộ trong edmx của tôi tôi nhận được kết quả như sau:
**
- Đầu tiên EF Gọi: 2617 mili giây
- Second EF Gọi: 19 mili giây
- thứ ba EF Gọi: 19 mili giây
- thứ tư EF Gọi: 17 mili giây
- Fifth EF Gọi: 20 mili giây
**
Tôi hy vọng điều này kể từ EF đang tạo ra các quan điểm địa phương để truy cập cơ sở dữ liệu ...
Khi tôi chuyển sang 'Sao chép vào thư mục Output', hãy kiểm tra các file của tôi đang được sao chép vào thư mục bin và chuỗi kết nối của tôi đã được cập nhật, và sau đó chạy thử nghiệm cùng tôi nhận được kết quả tương tự:
**
- Đầu tiên EF Gọi: 2546 mili giây
- Second EF Gọi: 19 mili giây
- Thứ ba EF Gọi: 18 mili giây
- Thứ tư EF Gọi: 18 mili giây
- Fifth EF Gọi: 21 mili giây
**
Không có thay đổi trong cuộc gọi đầu tiên, thật kỳ lạ. Tôi đã thêm EF Power Tools, nhấn chuột phải vào edmx => Entity Framework => Generate Views. Tệp 'Model1.View.cs' được tạo bằng chuỗi cho mỗi bảng/lượt xem của tôi, vì vậy tôi cảm thấy như tôi đang đi đúng hướng. Khi tôi chạy thử nghiệm một lần nữa tôi đã nhận được kết quả tương tự. Đặt điểm ngắt trong mỗi phương thức của tệp 'Model1.View.cs' mới được tạo ra cho thấy rằng nó không bao giờ bị tấn công.
Tôi có thiếu một bước quan trọng ở đây không? Tôi làm cách nào để yêu cầu EF sử dụng tệp đã được tạo bởi EF Power Tools hoặc làm cách nào để làm cho Thư mục sao chép sang đầu ra hoạt động như tôi đã đọc trực tuyến?
Cảm ơn bạn Pawel! –
Tôi bao gồm lượt xem được tạo trước tương tác và hình ảnh gốc được tạo và cuộc gọi đầu tiên của tôi đã giảm xuống còn 458 mili giây. Bạn thật tuyệt vời. –
Hi Matthew, tôi đang làm việc trên một ứng dụng ASP.NET MVC và tôi sẽ kiểm tra giải pháp của bạn. Bạn đã thêm mã của Pawel ở đâu? Trong tập tin Global.asax? Tôi đã xác định bối cảnh cơ sở dữ liệu và edmx trong một dll bên ngoài. Cảm ơn trước. – jacktric