C# 删除插入时的非唯一数据
表实体列是唯一的,我正在尝试添加项。项目数量相当大,所以我试图避免多次连接到数据库。忽略重复项的最佳方法是什么 例如:C# 删除插入时的非唯一数据,c#,database,linq-to-sql,C#,Database,Linq To Sql,表实体列是唯一的,我正在尝试添加项。项目数量相当大,所以我试图避免多次连接到数据库。忽略重复项的最佳方法是什么 例如: 编辑:问题是word1的类型是nchar(50),所以在将其更改为nvarchar(50)后,一切都正常了。听起来您希望避免插入表中已经存在的单词 HashSet<string> words; List<string> newWords = words.Except(lh.words.Select(w=>w.word1))
编辑:问题是word1的类型是nchar(50),所以在将其更改为nvarchar(50)后,一切都正常了。听起来您希望避免插入表中已经存在的单词
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}));
HashSet单词;
列出newWords=words.Except(lh.words.Select(w=>w.word1))
.ToList();
InsertAllOnSubmit(newWords.Select(x=>newword{word1=x}));
您的代码,正如您今天所拥有的,将在同一批中一个接一个地发送所有
插入内容。它将使用您拥有的一个SubmitChanges()
为它们创建一个连接。您是否考虑过对大量记录使用hashset?问题是hashset将包含元素,已经在db中。HashSet中的元素已经小写了。