簡體   English   中英

SubmitChanges調用不更新數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM