Tôi có một câu hỏi liên quan đến .AsNoTracking()
phần mở rộng, vì đây là tất cả khá mới và khá khó hiểu.
Tôi đang sử dụng bối cảnh theo yêu cầu cho một trang web.
Rất nhiều thực thể của tôi không thay đổi nên không cần phải theo dõi, nhưng tôi có kịch bản sau đây khi tôi không chắc chắn về những gì sẽ đến cơ sở dữ liệu, hoặc thậm chí liệu nó có tạo ra sự khác biệt trong trường hợp này hay không.
Ví dụ này là những gì tôi đang làm:
context.Set<User>().AsNoTracking()
// Step 1) Get user
context.Set<User>()
// Step 2) Update user
Điều này giống như trên nhưng loại bỏ .AsNoTracking()
khỏi Bước 1:
context.Set<User>();
// Step 1) Get user
context.Set<User>()
// Step 2) Update user
Bước 1 & 2 sử dụng cùng một bối cảnh nhưng xảy ra ở những thời điểm khác nhau. Những gì tôi không thể làm việc là liệu có sự khác biệt nào không. Vì Bước 2 là một bản cập nhật, tôi đoán cả hai sẽ tấn công cơ sở dữ liệu hai lần.
Bất cứ ai có thể cho tôi biết sự khác biệt là gì?