SQLデータベース(SQLMetal.exeによって生成されたコード)に新しい項目を挿入できることはわかっています。エンティティテーブルのAttachメソッドを使用して新しいアイテムを添付することも、既存のレコードを編集することもできます。LINQ to SQL CRUD(具体的に挿入する) - 複数の項目を挿入する
ここで、1つの新しいエンティティの代わりに、多くのものが提示されているとします。そのうちのいくつかはすでにテーブル内に存在している可能性があります。プライマリキーがありますが、コレクションに変更されたレコードがある可能性があります。プライマリキーは、変更された内容を把握するための最良の方法ではない可能性があります。
LINQテーブルのすべてのレコードを調べて、その列データをすべて、問題のコレクションのエンティティにあるすべての列データと比較する必要がありますか。これは、どのものが新しいのか、どのものが変更されたのか、どのものが破棄できるのかを教えてくれるでしょう。これは実際にそれを行うのは本当に長い風のように思える。
もっと簡単な方法はありますか?
ありがとうございました。
彼らは(http://stackoverflow.com/questions/637225/how-would-you-write-an-upsert [独自のロール]にしているUPSERTそれを呼び出すが、LINQの中であなたをSQLに-for-linq-to-sql) – sq33G