2013-11-23 70 views
1

如果存在或更新行,最有效的方法是什麼?我需要更新(如果存在)else將LINQ插入到SQL

我正在使用Linq to SQL,並且已經讀取了few posts,但沒有任何解決方案是最新的,或者沒有多個數據庫調用或舊框架即可解決。目前我只是插入,如果有重複的聲明給出了一個錯誤,Violation of PRIMARY KEY constraint

我需要它很快的原因是,它最終將成千上萬的記錄。

+2

我強烈建議使用實體框架而不是LINQ to SQL。 –

+0

有什麼理由?設置起來並不困難,到目前爲止我還沒有完成很多工作。 – schumacherj

+2

除非您提前獲取所有PK值,否則不能在沒有數據庫往返的情況下執行此操作,請檢查內存並保持交叉,以避免併發用戶在檢查之後和提交之前添加重複項。我碰巧給出了類似的答案[這裏](http://stackoverflow.com/a/20156644/861716)。 –

回答

-3

爲了做到這一點,需要往返調用,我加載了表的主鍵值。然後在撥打db.SaveChanges之前,我添加了以下代碼:

if (checklist.Contains(tempstats)) 
      { 
       db.Stats.Add(tempstats); 
      } 
相關問題