FBr*_*t87 4 c# entity-framework automapper entity-framework-6
我有一个Project对象,它由许多嵌套对象组成。
将此对象保存到数据库:
var existingProject =
db.Project.Single(p => p.ID == changedProject.ID).Include(p => p.Something);
existingProject = Mapper.Map(changedProject, existingProject);
db.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
由于外键为空,这失败了,这并不奇怪,因为当我深入研究更改跟踪器时,我可以看到它非常混乱:
var added = db.ChangeTracker.Entries().Where(e => e.State == EntityState.Added);
Run Code Online (Sandbox Code Playgroud)
映射发生后,项目中的大量对象被标记为“已添加”(即使项目中没有添加或删除任何内容,我只更改了一个属性)。
这是因为 AutoMapper 创建嵌套对象的新实例,而 EF 无法将它们与数据库中的现有对象关联吗?
我在很多地方都看到了这种方法的建议,有没有一种方法可以让 AutoMapper 与 ChangeTracker 一起工作,以便它理解上述内容 - 或者最好手动映射所有内容?(就我而言,有很多工作)
| 归档时间: |
|
| 查看次数: |
1014 次 |
| 最近记录: |