我在管道分隔的文本文件和数据库表(包括主键列)中有具有相同架构的数据。
我必须检查文件中的每一行是否存在于表中,如果没有为该行生成 INSERT 语句。
该表有 30 列,但在这里我为这个示例进行了简化:
ID Name Address1 Address2 City State Zip
ID是运行标识列;因此,如果在表中找到文件中的特定 ID 值,则不应insert
为此生成任何语句。
这是我的尝试,感觉不正确:
foreach (var item in RecipientsInFile)
{
if (!RecipientsInDB.Any(u => u.ID == item.ID ))
{
Console.WriteLine(GetInsertSql(item));
}
}
Console.ReadLine();
编辑:对不起,我错过了提出实际问题;这该怎么做?非常感谢您提供的所有帮助。
编辑:表有一百万多行,而文件有 50K 行。这是一次性的事情,而不是永久的项目。