正如您使用Entity Framework Core的人所知,当前版本没有实体的CurrentValues.SetValues()实现。看起来对此的支持将在下一个版本v1.1中以issue状态出现。在那之前,是否有人有解决方案可用于更新实体条目?
对于上下文,过去实体框架中的SetValues函数接受一个实体并将其属性更新为作为参数传递的实体的值,即:。
var updatedEntity = currentEntity.CurrentValues.SetValues(newValues);
_dbContext.SaveChanges();
我发现一些使用PropertyInfo的实现来制作通用的更新功能,但是找不到任何看起来很干净的解决方案。可能只需要拿走我能得到的东西:)
P.S。我意识到这个功能只适用于那些不需要更新其他相关实体的复杂对象图的简单实体。我的用例很简单。现在必须手动映射属性真烦人。
答案 0 :(得分:2)
编辑:现在EF Core v1.1.0已经发布,CurrentValues.SetValues()可以正常工作。
请参阅以下代码段
var currentEntity = dbSetEntity.Find(id);
_dbContext.Entry(currentEntity).CurrentValues.SetValues(newValues);