0
私のプロジェクトでは、次のコードを使用して既存のレコードを新しいレコードとしてコピーしています。既存のエンティティオブジェクトをDbContextに追加するとどうなりますか?
// Copying existing purchase order
Purchase newPurchase = this.currentPurchase
// Add copy to DbContext
this.boManager.Add(newPurchase);
// Saveing changes and handle exceptions
CommitChanges();
それは働いているようだが、私は何が起こるかは、それは私が既存のレコードを追加していたとき、私は実際には午前不可欠同じデータを持つ新しいものを追加したいとエンティティフレーム上の図を頼ることになると思われることを観察し、私のためにそれを行いますが、私は誤って既存のレコードを追加することを追加していることが分かりました。レコードが既に存在するので何もしないほうがいいです。
だから、私の質問は:
- エンティティの内部作業についての私の解釈が正しいですか?
- 新しい機能をコピーするには、そのコードに依存する必要がありますか?
ありがとうSza、今、愚かな感じ:D。あなたが提案したソリューションについては、そこにジェネリッククローンエクステンションメソッドについて話していると思います:http://stackoverflow.com/questions/2178080/linq-to-sql-copy-original-entity-to-new-one-and-セーブ?そして、地図は反射する権利を意味しますか?私はGeneric Cloneメソッドを使用していますが、自動EFプロキシとの闘いのために遅延ロードをオフにしなければなりませんでした。 –