2010-09-21 6 views
1

La colonne d'entité de table est unique et j'essaie d'ajouter des éléments. La quantité d'éléments est assez importante, donc j'essaie d'éviter de me connecter à une base de données plusieurs fois. Quelle est la meilleure façon d'ignorer les doublons?Suppression de données non uniques sur l'insertion

Exemple: code

Edit: Le problème était word1 était de type nchar (50), donc après avoir changé à tout nvarchar (50) a travaillé.

Répondre

2

Il semble que vous souhaitiez éviter d'insérer ces mots déjà dans la table.

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})); 

Votre code, comme vous l'avez aujourd'hui, va envoyer tous les INSERTS l'un après l'autre, dans le même lot. Cela créera une connexion unique pour tous avec l'un SubmitChanges() que vous avez.

+0

avez-vous considéré la période de hashset pour un grand nombre d'enregistrements? – TalentTuner

+0

Le problème est que Hashset contiendra des éléments, déjà en db. Et les éléments dans HashSet sont déjà en minuscules. – Margus

+0

@Margus: mise à jour de la réponse pour vous! –

Questions connexes