1

我有 2 张桌子;具有一对多现实的 PriceList 和 PriceListDetail。插入新的 PriceList 后,我​​需要复制现有 PriceList 的 PriceListDetail。

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

我只需要更改上面 pricedetails 的 priceListID 并将它们插入 PriceListDetail 表。当我修改 pricedetails 的 priceListId 并尝试插入它们时,我得到“无法插入已经存在的实体”。

明显的解决方案是创建新实体并从 pricedetails 中一一复制值然后插入。

有没有办法避免一一复制?也许创建重复的行然后修改重复的行?

4

1 回答 1

1

实体框架使用除主键之外的另一个键,它称为entity key. 因此,有了 PriceListDetails,您所要做的就是更改主键 ID 并将实体键设置为 NULL(NULL 表示新行)。

于 2012-07-16T06:53:45.790 回答