linq を使用して 2 つのデータベース間でテーブルを同期しようとしています。両方のテーブルの主キー (ID) を同じにする必要があります。linq を使用してこれを達成できませんでした。
グーグルを精査した後、私が得ることができる最も近いものはこれです:
Using DbContext as New DBContext()
'Somewhere I read that the line below ensures queries run in the same session
DbContext.Connection.Open()
Dim CopyOfShoe as New Shoe()
CopyOfShoe.ID = OriginalShoe.ID
CopyOfShoe.Color = OriginalShoe.Color
DbContext.ExecuteCommand("SET IDENTITY_INSERT Shoes ON")
DbContext.Shoes.InsertOnSubmit(CopyOfShoe)
DbContext.SubmitChanges()
DbContext.ExecuteCommand("SET IDENTITY_INSERT Shoes OFF")
End Using
しかし、これは例外をスローします:
IDENTITY_INSERT が ON に設定されている場合、またはレプリケーション ユーザーが NOT FOR REPLICATION ID 列に挿入している場合は、テーブル 'Shoes' の ID 列に明示的な値を指定する必要があります。
ExecuteCommand を使用して既存の ID に新しいレコードを挿入することでこれを回避できることはわかっていますが、linq だけを使用してそれが可能かどうかを知りたいです。