1
我正在使用EF 4.2並且遇到了一個非常隨機且沒有警告的問題。我有一個更新數據庫的Windows服務。在服務中我有一個計時器。當定時器的時間過去時,一個方法被調用。這是該方法實體框架SaveChanges並不總是工作
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();
現在的基本結構,但問題是,一旦我們開始與數據庫了一天的工作,並有該數據庫的表中的幾行(我們正在談論100或200行),然後即使調用此方法,SaveChanges
似乎也沒有做它應該做的事情。我究竟做錯了什麼?
感謝,
薩欽
你有什麼對日誌文件? – Turbot 2012-07-18 17:16:39
做'CallSomeMethodThatAlsoCallsSaveChanges'和'SaveChanges()'使用不同的上下文實例嗎? – 2012-07-18 17:56:49
沒有日誌,我很害怕。不,他們使用相同的上下文。 – 2012-07-19 09:28:49