1

テーブルが 2 つあります。PriceList および PriceListDetail は、1 対多の現実性を備えています。新しい PriceList を挿入した後、既存の PriceList の PriceListDetail をコピーする必要があります。

var pricedetails= db.PriceListDetails.Where(p => p.PriceList Id == SomeExistingPriceListID);

上記の pricedetails の priceListID を変更し、それらを PriceListDetail テーブルに挿入するだけです。pricedetails の priceListId を変更して挿入しようとすると、「既に存在するエンティティを挿入できません」というメッセージが表示されます。

明白な解決策は、新しいエンティティを作成し、pricedetails から値を 1 つずつコピーしてから挿入することです。

1つずつコピーしないようにする方法はありますか? 重複した行を作成してから、重複した行を変更することはできますか?

4

1 に答える 1

1

エンティティ フレームワークは、主キー以外の別のキーを使用し、entity key. したがって、PriceListDetails があれば、主キー ID を変更し、エンティティ キーを NULL に設定するだけです (NULL は新しい行を意味します)。

于 2012-07-16T06:53:45.790 に答える