C# EntityFramework.Core:更新实体的正确方法';给定DTO的深度嵌套属性
我试图找出如何正确地对给定DTO的实体进行深度更新 我有一门课:C# EntityFramework.Core:更新实体的正确方法';给定DTO的深度嵌套属性,c#,entity-framework-core,C#,Entity Framework Core,我试图找出如何正确地对给定DTO的实体进行深度更新 我有一门课: DummyModel |- List<Level1> Level1: |- List<Level2> Level2: |- List<Level3> Level3: |- Flat properties dummy模型 |-名单 第1级: |-名单 第2级: |-名单 第3级: |-平面属性 我试图: 使用AgileMapper库,它有一个:这工作非常好,但它是一个主要的开销
DummyModel
|- List<Level1>
Level1:
|- List<Level2>
Level2:
|- List<Level3>
Level3:
|- Flat properties
dummy模型
|-名单
第1级:
|-名单
第2级:
|-名单
第3级:
|-平面属性
我试图:
- 使用AgileMapper库,它有一个:这工作非常好,但它是一个主要的开销
- 通过创建递归函数手动更新实体,“Id感知”通过使用Id对齐实体并手动添加/删除/更新来更新列表
- 使用:
可以正确理解当我洗牌列表时,实际上没有任何更改,但它不会跟踪级别2或级别3的深层更改context.Entry(entity).CurrentValues.SetValues(dto)
我做了一个“测试夹具”。我已经知道了。我的问题是正确的方法是什么?EF是否有内置的解决方案?为什么
context.Entry(entity).CurrentValues.SetValues(dto)
不能按预期工作?问题是,类似的问题总是会被问到。所以,仔细检查一下,选择最适合你的。我已经知道了。我的问题是正确的方法是什么?EF是否有内置的解决方案?为什么context.Entry(entity).CurrentValues.SetValues(dto)
不能按预期工作?问题是,类似的问题总是会被问到。所以,仔细检查它们,选择最适合你的。