Thực ra tôi có một truy vấn LINQ tìm nạp một thực thể và một số thuộc tính điều hướng của nó.AsNoTracking() và Bao gồm
context.MyEntity
.AsNoTracking()
.Include(i=> i.Nav1)
.Include(i=> i.Nav2)
.Where(x=> x.Prop1==1)
.FirstOrDefault();
Bây giờ câu hỏi của tôi là:
là đủ truy vấn này vì đã không theo dõi MyEntity và NAv1, Nav2 hoặc phải thêm AsNoTracking cho mỗi tài sản chuyển hướng. như thế này:
context.MyEntity
.AsNoTracking()
.Include(i=> i.Nav1)
.AsNoTracking()
.Include(i=> i.Nav2)
.AsNoTracking()
.Where(x=> x.Prop1==1)
.FirstOrDefault();
Bạn chỉ cần 'AsNoTracking' một lần cho mỗi truy vấn để ví dụ đầu tiên của bạn là chính xác. Tôi tin rằng thứ hai sẽ ném một ngoại lệ thời gian chạy (không chắc chắn cái nào). – Igor
Nếu bạn chuỗi nhiều LINQ phương pháp bạn luôn luôn vượt qua chuỗi trả về từ phương pháp trước để sau đây. Vì vậy, sau khi 'AsNoTracking' bạn có một truy vấn mà các thực thể trả về sẽ không được lưu trữ –
Tks giúp đỡ của bạn –