Có cách nào để vô hiệu hóa tính năng theo dõi đối tượng của LINQ mà không vô hiệu hóa các liên kết con lười biếng không?LINQ to SQL: Đặt ObjectTrackingEnabled thành sai ngắt tải lười của các thực thể con?
Tôi đang sử dụng LINQ2SQL trong một bộ kiểm tra tích hợp. Tôi chỉ sử dụng LINQ để xác minh các thay đổi trong cơ sở dữ liệu, vì vậy tôi muốn nó hoạt động giống như một lớp truy cập dữ liệu đơn giản hơn là một ORM đầy đủ. Để làm điều này, tôi thiết lập thuộc tính ObjectTrackingEnabled của bối cảnh dữ liệu thành false để ngăn chặn LINQ khỏi dữ liệu lưu trong bộ nhớ đệm. Điều này làm việc tốt, ngoại trừ việc nó phá vỡ các liên kết giữa các thực thể.
Ví dụ: giả sử hai bảng WIDGET và CATEGORY, có mối quan hệ FK giữa chúng. Khi bật theo dõi đối tượng, tiện ích Instance.CATEGORY được tải đúng cách. Với tính năng theo dõi đối tượng bị vô hiệu hóa, không có gì được tải xuống và thuộc tính CATEGORY luôn là rỗng.
Làm cách nào để ngăn LINQ lưu vào dữ liệu lưu vào bộ nhớ cache mà không ngăn cản tải chậm?
CẬP NHẬT: Dưới đây là a link to the MSDN page được tham chiếu bằng câu trả lời. Nghiên cứu thêm cũng bật lên rằng tôi có thể sử dụng LoadWith để tải dữ liệu con một cách háo hức. Trong trường hợp của tôi, tôi chỉ muốn dữ liệu, vì vậy tải mong muốn là tốt.
Tôi nên có RTFM :) –