我有一個有趣的問題。LINQ to SQL:DataContext.SubmitChanges不立即更新
做DataContext.SubmitChanges()以一種方式更新Count(),但不在另一種方式,請參閱下面的代碼中的我的評論。
(DC是DataContext)
Company c = DC.Companies.SingleOrDefault(x => x.Name == companyName);
DataCompliance compliances = c.DataCompliances.Where(x => x.ComplianceCriteria.FKElement == e.Id);
if (compliances.Count() == 0) // Insert if not exists
{
DC.DataCompliances.InsertOnSubmit(new DataCompliance {
FKCompany = c.Id,
FKComplianceCriteria = criteria.Id
});
DC.SubmitChanges();
compliances = c.DataCompliances.Where(x => x.ComplianceCriteria.FKElement == e.Id);
// At this point DC.DataCompliances.Count() has increased,
// but compliances.Count() is still 0
// When I refresh the page however, it will be 1
}
爲什麼會發生這種情況?
我需要在插入一個後立即更新compliances
。有沒有人有辦法解決嗎?
不,這不是問題的定義。它將正確的數據插入到數據庫中。但是,謝謝! – Aximili 2011-01-14 03:53:27
@aximili - 是的,但它會但我認爲它實際上並沒有從數據庫中檢索相關的實體。您的where子句引用此實體,因此新元素從篩選集合中省略。 – tvanfosson 2011-01-14 03:55:19