gpt4 book ai didi

c# - 如何判断表中哪个字段发生了变化?使用 C# 和 Entity Framework

转载 作者:行者123 更新时间:2023-12-02 14:33:45 24 4
gpt4 key购买 nike

在字段表中a、b、c、d、...,然后用户 x 更改c、d、的值strong>所有字段值覆盖并且c和d的值被更改,我想要的历史记录来自这个系统是:

用户x同时更改了c和d的值,同时显示新值和旧值,其他用户也是如此。 p>

如果用户刚刚编辑但未对字段进行任何更改,则什么也不会发生

为了找出哪些字段现在已更改,所有字段都必须进行调节或者 C# 中是否有一个库可以找出哪些字段现在已更改?强>

如果这是一个库,那么它的示例会很有帮助。

最佳答案

您可以使用 ChangeTracker 类来发现更改的内容。您将需要使用反射来查找每个已修改实体的属性名称。

foreach (var entry in db.ChangeTracker.Entries().Where(entry => entry.State == EntityState.Added || entry.State == EntityState.Modified))
{
// Gets all properties from the changed entity by reflection.
foreach(var entityProperty in entry.Entity.GetType().GetProperties())
{
var propertyName = entityProperty.Name;
var currentValue = entry.Property(propertyName).CurrentValue;
var originalValue = entry.Property(propertyName).OriginalValue;
}
}

您可以在此站点中找到有关 ChangeTracker 的更多信息:https://www.entityframeworktutorial.net/change-tracking-in-entity-framework.aspx

关于c# - 如何判断表中哪个字段发生了变化?使用 C# 和 Entity Framework ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59318699/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com