たとえば、後で挿入、更新、または破棄する予定のいくつかのエンティティを作成または取得しているとします。
foreach (var foo in foos) {
if (foo.condition)
_myEntityCollection.Add(new Some_Entity_Type());
else
_myEntityCollection.Add(dc.Some_Entity_Types
.Where(t => t.ID == someID).FirstOrDefault());
}
たとえば、元に戻すときが来たら、次のようにします。
// Exception gets thrown here if entity didn't exist in data context
_myEntityCollection.ForEach(t => dc.Refresh(RefreshMode.OverwriteCurrentValues, t));
_myEntityCollection
繰り返し処理して、エンティティがフェッチしたものか新しいものかを判断できるようにしたいと考えています。