【发布时间】:2021-10-07 15:58:02
【问题描述】:
我可以轻松获取 EntityEntry 及其状态:
EntityEntry<Customer> entry = dbContext.Entry(customer);
如何获取 EntityEntry 的更改属性列表?
我有这样的事情:
entry.CurrentValues.Properties
.Where(prop => changedEntry.CurrentValues[prop] != changedEntry.OriginalValues[prop])
.Select(prop => new
{
Property = prop,
Value = changedEntry.CurrentValues[prop]
});
但它不支持 ValueComparers。
【问题讨论】:
-
有一个类似的老问题,但我不能接受接受的答案,因为它不支持映射到字段、值转换器等的列
-
什么是不可接受的,为什么?在问题本身中提及这一点。此外,ValueComparers 不会更改属性。它们是用来加载属性的东西,无论它们是否被改变。您不会在更改跟踪器中找到它们,而是在 DbSet 的元数据中找到它们
标签: c# entity-framework-core .net-5 change-tracking