ฉันสะดุดกับคำถามนี้ในขณะที่ค้นหาวิธีแก้ปัญหาที่ฉันพบโดยที่คุณสมบัติการนำทางไม่ได้รับการเติมข้อมูลหลังจากอัปเดตเอนทิตี เมื่อใดก็ตามที่ฉันพยายามโหลดเอนทิตีใหม่จากฐานข้อมูลมันจะดึงรายการจากร้านค้าในพื้นที่แทนซึ่งจะไม่เติมคุณสมบัติการนำทางผ่านการโหลดแบบขี้เกียจ แทนที่จะทำลายบริบทและสร้างใหม่ฉันพบว่าสิ่งนี้ทำให้ฉันได้รับข้อมูลใหม่โดยที่พร็อกซีใช้งานได้:
_db.Entry(entity).State = EntityState.Detached;
ตรรกะเบื้องหลังคือ - การอัปเดตของฉันแนบเอนทิตีเพื่อให้ติดตามการเปลี่ยนแปลง สิ่งนี้จะเพิ่มไปยังร้านค้าในพื้นที่ หลังจากนั้นความพยายามใด ๆ ในการดึงข้อมูลเอนทิตีด้วยพร็อกซีที่ใช้งานได้จะส่งผลให้เอนทิตีดึงข้อมูลในเครื่องแทนที่จะออกไปที่ฐานข้อมูลและส่งคืนเอนทิตีใหม่ที่เปิดใช้งานพร็อกซี ฉันลองใช้ตัวเลือกรีโหลดด้านบนซึ่งจะรีเฟรชวัตถุจากฐานข้อมูล แต่นั่นไม่ได้ให้วัตถุพร็อกซีที่มีการโหลดแบบขี้เกียจ ฉันลองทำไฟล์Find(id), Where(t => t.Id = id), First(t => t.Id = id)
. ในที่สุดฉันตรวจสอบสถานะที่มีอยู่ที่ระบุและเห็นว่ามีสถานะ "แยกออก" ยูเรก้า! หวังว่านี่จะช่วยใครบางคนได้