[英]SubmitChanges call not updating data
最近幾小時,我試圖找出為什么我無法使用SubmitChanges
方法更新數據庫中的數據的原因。
我能夠正常檢索數據,但是當我調用SubmitChanges
方法時,調用將執行5分鍾以上,然后繼續進行,沒有任何錯誤,但是當我檢查數據庫時,沒有任何更新。
我之前做了一些研究,還有其他帖子說要檢查主鍵是否已聲明,但實際上已經聲明了。
這是我正在使用的代碼:
SitesDB sitesDB = new SitesDB(SqlConnection);
Site site = sitesDB.GetSite(ProgramArgs.SiteID);
var records = DB.records
.Join(DB.Locations.Where(l => l.SiteID == ProgramArgs.SiteID),
s => Convert.ToInt32(s.store_id),
l => l.LocationID,
(s, l) => s)
.OrderBy(s => s.survey_date_utc);
foreach (var record in records)
{
record.date_local = ConvertTimeFromUTC(date_utc, site.TimeZoneID);
DB.SubmitChanges();
}
您應該對數據庫進行概要分析,以了解SQL中正在發生什么。
您確定這是submitchanges
嗎? 由於您的foreach
內部有SubmitChanges()
,因此一次只會更新一條記錄。 除非您有一個非常大的表/很多索引等,否則這應該不是性能問題。您可能希望將其移到foreach之外。 但是,這仍將對每條記錄進行一次更新,因此不會那么快。
您的問題可能是在提交掛起之前 。 默認情況下,Linq-2-sql推遲執行。 這意味着您的選擇僅在您執行操作后立即在數據庫中執行
foreach (var record in records)
所以我的想法是,這是您的性能問題,而不是提交更改。
您可能希望在調試器中看到這一點,在foreach record.data ...的第一行上放置一個斷點,然后測試是否真正到達那里。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.