2010-09-21 65 views
1

表實體列是唯一的,我試圖添加項目。項目數量相當大,所以我試圖避免多次連接到數據庫。什麼是忽略重複的最好方法?刪除插入的非唯一數據

實施例:code

編輯:問題是WORD1爲類型的nchar(50)的,所以將其改爲nvarchar的後(50)一切工作。

回答

2

聽起來好像你想避免插入那些已經在表格中的單詞。

HashSet<string> words; 

List<string> newWords = words.Except(lh.words.Select(w=>w.word1)) 
          .ToList(); 

lh.words.InsertAllOnSubmit(newWords.Select(x=> new word { word1 = x})); 

你的代碼,因爲你今天的話,會發送所有INSERTS一個後對方,在同一批次。它會爲你所有的一個SubmitChanges()創建一個單一的連接。

+0

你有沒有考慮hashset的大量no記錄? – TalentTuner 2010-09-21 02:44:56

+0

問題是Hashset將包含已經在db中的元素。並且HashSet中的元素已經小寫了。 – Margus 2010-09-21 02:47:38

+0

@ Margus:爲您更新了答案! – 2010-09-21 02:54:56