正如您使用Entity Framework Core的人员所知道的那样,当前版本没有Entities的CurrentValues.SetValues()的实现。该issue指出,似乎将在下一版本v1.1中提供对此的支持。在此之前,还有谁能解决更新实体条目的问题?

对于上下文,过去的实体框架中的SetValues函数采用一个实体并将其属性更新为作为参数传递的实体的值,即:

var updatedEntity = currentEntity.CurrentValues.SetValues(newValues);
_dbContext.SaveChanges();


我已经找到了一些使用PropertyInfo来实现通用更新功能的实现,但是还没有发现任何看起来很不错的解决方案。可能只需要采取我能得到的:)

ps。我意识到此功能仅适用于没有复杂对象图的简单实体,而这些对象图需要更新其他相关实体。我的用例很简单。必须立即手动映射属性很烦人。

最佳答案

编辑:现在已经发布了EF Core v1.1.0,CurrentValues.SetValues()将可以使用。

请参阅以下代码段

var currentEntity = dbSetEntity.Find(id);
_dbContext.Entry(currentEntity).CurrentValues.SetValues(newValues);

10-01 23:10