使用 N-Tier Entity Framework,如何访问已标记为已删除的实体?

Using N-Tier Entity Framework, how can I access an entity that has been marked as deleted?

注意:我的项目使用的是 N 层 Entity Framework (https://ntieref.codeplex.com/),这与常规 Entity Framework.

不同

在客户端,当我尝试访问已标记为已删除的实体时,它没有出现在我的 foreach 循环中。

foreach (var entity in DataContext.EntitySet.Where(x => x.ChangeTracker.State == ObjectState.Deleted))

我无法访问标记为已删除的实体。

var entity = DataContext.EntitySet.Where(x => x.ChangeTracker.State == ObjectState.Deleted).FirstOrDefault();

@ChristofSenn 在保存更改之前,如何在客户端中访问标记为已删除的实体?

标记为已删除的实体是隐藏的,并且在枚举实体集时不会返回。 要获取所有实体(即包括已删除的实体),您可以使用以下方法:

接口:

IEntitySet<TEntity>.GetAllEntities();

样本:

foreach (var entity in DataContext.EntitySet
                             .GetAllEntities()
                             .Where(x => x.ChangeTracker.State == ObjectState.Deleted))