私はEF4.2を使用していますが、非常にランダムに警告なしに発生する問題があります。データベースを更新するWindowsサービスがあります。サービスではタイマーがあります。タイマーの時間が経過すると、メソッドが呼び出されます。これがメソッドの基本構造です
IEnumerable<Foo> foos = GetFoosFromDB();
foreach (Foo foo in foos)
{
if (some condition)
{
foo.Bar = 1;
}
if (some other condition)
{
foo.Bar = 2;
}
if (yet some other condition)
{
foo.Bar = 3;
}
else
{
int val = GetSomeValueFromDB();
if (val == something)
{
if(GetSomeOtherValueFromDB())
{
foo.Bar = 4;
}
else
{
CallSomeMethodThatAlsoCallsSaveChanges();
foo.Bat = SomeCalculatedValue();
}
}
}
}
SaveChanges();
ここで問題となるのは、データベースで1日作業を開始し、そのデータベースのテーブルに数行があると(100行または200行のみについて話している)、このメソッドが呼び出されても、そうではないということですSaveChanges
。 tはそれがすべきことをしているようです。私は何が間違っているのですか?
ありがとう、
サチン