วันพุธที่ 1 ตุลาคม พ.ศ. 2557

ปัญหา Cache จากการใช้ Entity Framework 6

สืบเนื่องมาจากมีข้อมูลอยู่ชุดหนึ่ง  ซึ่งพยายามที่จะอัพเดทมัน แต่ดูเหมือนอัพเดทได้อันเดียว อันที่เหลือ มีค่าแปลกๆ แม้จะเทสแล้วก็ตาม ลอง Debug ดู พบว่า มันจำค่าเดิม  โดยที่ไม่ได้สร้างลง Cache เอาไว้ หลังจากหาอยู่พักหนึ่ง ก็พบว่า  ถ้าใช้ .Find ในโปรเจ็ค  คำสั่งนี้ จะเรียกจาก แคช ก่อนเสมอ

ทำให้ค่าบางตัวที่ไม่ต้องการแคชเพี้ยนไป  แก้ได้ด้วยการใช้คำสั่ง  พวก .Single .First .Where แทน การใช้ .Find

แต่ถ้าหากตัวไหน ต้องการ Performance  ก็ให้ใช้ .Find ไป