【发布时间】:2018-02-05 11:19:21
【问题描述】:
我正在尝试使用 SetValues 方法克隆实体,但出现以下错误:
无法跟踪实体类型“TariffPeriod”的实例,因为已经在跟踪另一个具有与 {'Id'} 键值相同的实例。附加现有实体时,请确保仅附加一个具有给定键值的实体实例。
代码如下:
var period2 = _tariffRepository.GetPeriodFull(period.GUID);
var period3 = new TariffPeriod();
_appDbContext.TariffPeriods.Add(period3);
_appDbContext.Entry(period3).CurrentValues.SetValues(period2);
我看到错误是由于主键的值被复制到新实体中。那么,如何在没有键的情况下复制值?
感谢您的帮助 埃里克
【问题讨论】:
-
你能分离 period2 吗?然后将其Id设置为Add和SetValue之间的period3?
标签: entity-framework