2010-09-21 51 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