Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 上下文在使用AutoMapper映射后未更新加载的实体_C#_Entity Framework_Ef Code First_Automapper - Fatal编程技术网

C# 上下文在使用AutoMapper映射后未更新加载的实体

C# 上下文在使用AutoMapper映射后未更新加载的实体,c#,entity-framework,ef-code-first,automapper,C#,Entity Framework,Ef Code First,Automapper,在我的代码中,我使用id加载实体,然后使用AutoMapper更新其内容,最后调用Context.SaveChanges。但是它不起作用了。但是当我手动设置属性时,它会产生效果!怎么了 var entity = Context.MyEntities.Find(id); entity = Mapper.Map<MyEntity>(viewModel); Context.SaveChanges; 然后使用AutoMapper更新其内容 这不是真的-Mapper.Map(viewMo

在我的代码中,我使用
id
加载
实体
,然后使用
AutoMapper
更新其内容,最后调用
Context.SaveChanges
。但是它不起作用了。但是当我手动设置属性时,它会产生效果!怎么了

var entity = Context.MyEntities.Find(id);

entity = Mapper.Map<MyEntity>(viewModel);

Context.SaveChanges;
然后使用AutoMapper更新其内容

这不是真的-
Mapper.Map(viewModel)
返回
MyEntity
类的新实例。它不会更新现有实例的属性。您应该将该新实例附加到上下文:

var entity = Context.MyEntities.Find(id); // this line is useless
entity = Mapper.Map<MyEntity>(viewModel);
Context.MyEntities.Attach(entity);
Context.SaveChanges;

令人惊叹的。谢谢你们,关于汽车制造商的行为,第三种选择如预期的那样有效。谢谢你们的帮助。克拉萨维奇!斯帕西博!我在拔我头上的最后一根头发!
var entity = Context.MyEntities.Find(id); // this line is useless
entity = Mapper.Map<MyEntity>(viewModel);
Context.MyEntities.Attach(entity);
Context.SaveChanges;
var entityFromDb = Context.MyEntities.Find(id);
var competelyNewEntity = Mapper.Map<MyEntity>(viewModel);
Context.MyEntities.Attach(competelyNewEntity);
Context.SaveChanges;
var entity = Context.MyEntities.Find(id);
Mapper.Map(viewModel, entity); // use this method for mapping
Context.SaveChanges;