Theo như em hiểu thì lazy load chỉ load các thuộc tính của thực thể, còn các thuộc tính liên quan chỉ load khi chúng ta truy cập.Nhưng em đã đặt breakpoint để xem thông tin student thì em thấy các thuộc tính liên quan đều được tải mặc dù em không hề truy cấp vào thuộc tình Enrollments như hình bên dưới.
Tại sao khi sử dụng lazy load trong entity framework, thực thể vẫn load thuộc tính liên quan dù chưa truy cập?
Cơ chế lazy load là truy cập vào biến liên quan thì load dữ liẹu. Việc đặt debug như thế cũng là truy cập biến liên quan rồi. Chỉ cần viết A.B là nó hiểu là lấy dữ liệu từ B rồi
1 Like
nhưng e chưa chấm bất kỳ cái nào hết á. e dừng ngay sao khi lấy student mà. hay so debug là n hiện hết ra như vậy ạ
Là bất kì hành động nào vào biến để xem dữ liệu cũng coi như query vào db lấy dữ liệu. Chỉ có eager load setting kèm chỉ định include mới là lấy dữ liệu 1 lần. Như thế thì khi xem xét giá trị sẽ chỉ là xem xét trên memory và không query db nữa
1 Like