Asp.net core 使用Automapper后保存Asp.Net核心Ef实体时出错
我有一个asp.net core 1应用程序,带有ef core 1.0和automapper 5.1.1。Asp.net core 使用Automapper后保存Asp.Net核心Ef实体时出错,asp.net-core,automapper,entity-framework-core,Asp.net Core,Automapper,Entity Framework Core,我有一个asp.net core 1应用程序,带有ef core 1.0和automapper 5.1.1。 我从网页上收到一个实体的viewmodel,我试图直接映射到ed实体 在地图的启动中,我声明了这个规则 cfg.CreateMap<AnagraficaVm, Anagrafiche>() .ForMember( dest => dest.Id, opt => opt.Ignore() ); 当我调用savechangesync时,我收到错误消息
我从网页上收到一个实体的viewmodel,我试图直接映射到ed实体 在地图的启动中,我声明了这个规则
cfg.CreateMap<AnagraficaVm, Anagrafiche>()
.ForMember( dest => dest.Id, opt => opt.Ignore() );
当我调用savechangesync
时,我收到错误消息
无法跟踪实体类型“Anagrafiche”的实例,因为
具有相同密钥的此类型的另一个实例已在创建中
跟踪。在添加新实体时,对于大多数键类型,一个唯一的
如果未设置任何键(即,如果
属性被指定为其类型的默认值)。如果你是
显式设置新实体的键值,确保它们不会
与现有实体或为其他实体生成的临时值冲突
新实体。附着现有实体时,请确保只有一个实体
具有给定键值的实体实例附加到上下文
如何避免此错误消息并将数据从视图模型映射到现有对象?当调用
savechangesync()
时?你能完成上面的代码吗?我有同样的问题,你能解决这个问题吗?当你调用savechangesync()
?你能完成上面的代码吗?我有同样的问题,你能解决这个问题吗?
var anagrafica = await _db.Anagrafiche.FirstOrDefaultAsync(r => r.Id == id);
if (anagrafica == null) return null;
_mapper.Map(model, anagrafica);