升级到EntityFramework7时遇到了麻烦,我通常会重写DbContext中的saveChanges,以便能够在更改之前获得所有已修改对象的列表。最后,我有一个脚本,它会激发跟踪数据库中以前版本的脚本。在Entity Framework 6中,我将得到如下模型更改:

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

List<ObjectStateEntry> ModifiedObjlist = modifiedItems.ToList();

但是现在ObjectContext在实体框架7中被删除了,我陷入了困境,我如何在实体框架7中获得修改对象的列表?

最佳答案

您可以使用DbContext.ChangeTracker

var modifiedEntries = context.ChangeTracker
       .Entries()
       .Where(x => x.State == EntityState.Modified)
       .Select(x =>x.Entity)
       .ToList();

08-16 00:08