パイプ区切りのテキスト ファイルとデータベース テーブルに、主キー列を含む同じスキーマのデータがあります。
ファイルの各行がテーブルに存在するかどうかを確認する必要があります。存在しない場合は、その行の INSERT ステートメントを生成します。
テーブルには 30 列ありますが、ここではこの例のために単純化しました。
ID Name Address1 Address2 City State Zip
ID は実行中の ID 列です。insert
そのため、ファイルの特定の ID 値がテーブルで見つかった場合、それに対して生成されるステートメントはありません。
ここに私の試みがありますが、これは正しくないと感じています:
foreach (var item in RecipientsInFile)
{
if (!RecipientsInDB.Any(u => u.ID == item.ID ))
{
Console.WriteLine(GetInsertSql(item));
}
}
Console.ReadLine();
編集:申し訳ありませんが、実際の質問をするのを逃しました。これを行う方法?大変お世話になりました。
編集: テーブルには 100 万以上の行があり、ファイルには 50K 行あります。これは 1 回限りのことであり、恒久的なプロジェクトではありません。