我正在寫一個更新方法,傳入要更新的對象列表中,我想知道如何編寫一個LINQ查詢來從所有對象需要數據庫進行更新更新方法中使用LINQ - 問題where條款
這與LINQ查詢,我試圖讓我的更新方法的一個實例(用於部分僞代碼,我不知道該怎麼做)
void UpdateObjects(List<MyObjects> updatedObjects)
{
DatabaseContext myContext = new DatabaseContext();
var originalObjectsThatRequireUpdating = from o in myContext.MyObjects
where o.ID matches one of updatedObjects.ID
select o;
foreach (var originalObject in originalObjectsThatRequireUpdating)
{
IEnumerable<MyObjects> tmpItem = updatedObjects.Where(i => i.ID == originalObject.ID);
originalObject.Field1 = tmpItem.ToList()[0].Field1;
//copy rest of the fields like this
}
myContext.SubmitChanges();
}
我不知道如何輕鬆地創建一個linq查詢如
where o.ID matches one of updatedObjects.ID
如果有人知道一個更簡單的方法來完成我所做的事情,請告訴,這似乎有點像一個奇怪的方式來做到這一點,但這是我能想到/知道如何做到這一點的唯一途徑。
你如何建立'updatedObjects'?通常EF會跟蹤更改,您需要的只是一個context.SaveChanges()。 – 2011-12-28 22:56:25
@HenkHolterman - 此方法是Web服務的一部分,'updatedObjects'來自Silverlight應用程序,我不太瞭解EF如何跟蹤更改以實現這一功能,但我認爲這不起作用這裏? – 2011-12-28 23:05:58