获取实体框架7中的已修改对象列表

kev*_*n c 8 .net c# entity-framework dbcontext entity-framework-core

我很难过 - 升级到Entity Framework 7,我通常会覆盖其中的SaveChanges,DbContext以便能够在更改之前获取所有修改对象的列表.最终,我有一个触发跟踪数据库中先前版本的脚本.在Entity Framework 6中,我会得到模型更改,如下所示:

var oc = ((IObjectContextAdapter)this).ObjectContext;
var modifiedItems = oc.ObjectStateManager.GetObjectStateEntries(EntityState.Modified | EntityState.Deleted);

List<ObjectStateEntry> ModifiedObjlist = modifiedItems.ToList();
Run Code Online (Sandbox Code Playgroud)

但是现在已经ObjectContext在Entity Framework 7中删除了,我被困住了,我将如何在Entity Framework 7中获取修改对象的列表?

Ham*_*jam 11

您可以使用DbContext.ChangeTracker

var modifiedEntries = context.ChangeTracker
       .Entries()
       .Where(x => x.State == EntityState.Modified)
       .Select(x =>x.Entity)
       .ToList();
Run Code Online (Sandbox Code Playgroud)

  • 我如何从ChangeTracker获取修改后的属性 (8认同)
  • @kevinc context.Entry(someObject).Properties.Where(m => m.IsModified); (2认同)