私は更新するオブジェクトのリストを渡す更新メソッドを書いていますが、私はどのように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()です。 –
@HenkHolterman - このメソッドはWebサービスの一部であり、 'updatedObjects'はSilverlightアプリケーションから来ていますが、EFがその変更を追跡して動作する方法については十分に分かっていませんが、動作しないと仮定していますここに? –