1

同じ linq to sql オブジェクト/DB レコードの 2 つのコピーが必要です。これは可能ですか?(以下のコードを使用して) DB から 2 つのレコードを作成してこれを実行しようとしましたが、これは同じ基礎となる db レコードのエイリアスを作成するだけのようです。同じレコードの異なる 2 つのコピーを作成することは可能ですか? 2 つの異なるオブジェクトを指す 2 つの参照を取得しようとしています。(これが不可能な場合は、オブジェクトを複製するだけでよいと思います)

    Dim one As Rec= (From l In myDB.table Where l.pk = 222 Select l).First
    Debug.Print(one.ssn) //prints 666666666  
    Dim two As Rec = (From l In myDB.table Where l.pk = 222 Select l).First
    two.ssn= "555555555"  //this also changes one.ssn to "555555555", but I don't want this to happen
4

1 に答える 1

1

最も簡単な方法は、オブジェクトのクローンを作成することです。それはあなたの意図を最も明確に表現するでしょう。他の唯一の方法 (Linq to SQL には detach メソッドがないため) は、まったく新しい DataContext を作成し、オブジェクトで InsertOnSubmit() を呼び出すことです。これは、主キーが生成されていると仮定して機能するはずです。それ以外の場合は、新しい主キーを自分で設定する必要があります。しかし、それはハックのように思えます-私は最初の解決策の方が好きです。

于 2013-01-10T19:28:50.727 に答える