แบบสอบถามการอัปเดต Linq Entity Framework

ฉันต้องการแปลงแบบสอบถาม SQL เป็นแบบสอบถาม ADO.NET Entity Framework LINQ ฉันกำลังทำงานกับ MySQL

ฐานข้อมูล SQL:

Update Not As n 
Inner Join user As a 
On a.UserId = n.Not_UserId  
Set Not_Checked='0' 
Where n.Not_Checked='1' 
And n.Not_UserId='" + Not_UserId + "'

ลิงค์:

var n5 = from u in db.user
         join n in db.not
         on u.UserId equals n.Not_UserId
         where n.Not_Checked==1 && n.Not_UserId==4
         select new
         {
               u,
               n
         };

ฉันต้องการอัปเดตค่าของ n ฉันได้ลอง n5.n แล้ว แต่ไม่ได้ผล จะอัปเดต n โดยใช้ LINQ EF ได้อย่างไร


person fr3ddgn    schedule 27.02.2013    source แหล่งที่มา
comment
ฉันพยายาม n5.n แต่มันไม่ทำงาน คุณช่วยอธิบายได้ไหม?   -  person Gert Arnold    schedule 27.02.2013
comment
ฉันลอง n5.n.Not_Checked แล้ว แต่มันใช้งานไม่ได้ ฉันต้องการเข้าถึงฟิลด์ Not_Checked ใต้ตาราง db.not หากฉันเข้าถึงสิ่งนี้ได้ ฉันต้องการอัปเดต   -  person fr3ddgn    schedule 27.02.2013
comment
@Conrad... ค่อนข้างถูกต้อง... ฉันสวมหมวก vb.net... ขอบคุณ!   -  person PGallagher    schedule 27.02.2013


คำตอบ (1)


ฉันคิดว่าคุณกำลังมองหาสิ่งนี้:

foreach (var x in n5.ToList())
{
    x.n.Not_Checked = 0;
}
db.SaveChanges();

โปรดทราบว่า n5 คือ IQueryable ดังนั้นคุณต้องวนซ้ำเพื่อไปยังองค์ประกอบ หรือทำ FirstOrDefault() เพื่อให้ได้องค์ประกอบแรก

person Gert Arnold    schedule 27.02.2013