gpt4 book ai didi

c# - EF7 - 如何在更改前从 DbSet 获取值

转载 作者:行者123 更新时间:2023-11-30 19:38:07 25 4
gpt4 key购买 nike

我尝试获取存储在 DbSet 中的实体在被代码更改之前和保存之前的值。但是,当我尝试使用 LINQ Single 语句获取它时,我得到了更改后的值。我正在使用 EF7。

代码如下:

DbSet<Entity> dbSet = Context.dbSet;
Entity ent = dbSet.Single(x => x.Id == id);
ent.FirstName = "New name";
Entity entityBeforeChange = dbSet.Single(x => x.Id == id); //here I want to get entity with old values, if that's important I just need to read it without modifying this instance

Context.SaveChanges();

希望我已经足够清楚并且可以得到一些帮助

最佳答案

您可以从 ChangeTracker 中获取任何实体的原始值。

var original = Context.ChangeTracker.Entries<Entity>().Single(x => x.Id == id);
var firstName = original.Property<string>("FirstName").OriginalValue;

关于c# - EF7 - 如何在更改前从 DbSet 获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35063361/

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