2

假设我有以下设置:

public interface IBaseEntity
{
    bool IsDeleted { get; set; }
}

public class Sushi : IBaseEntity
{
    public int Id { get; set; }
    public bool IsDeleted { get; set; }

    public string Name { get; set; }

    public ICollection<Fish> Fishes { get; set; }
}

public class Fish : IBaseEntity
{
    public int Id { get; set; }
    public bool IsDeleted { get; set; }
    public string Name { get; set; }
}

出于审计原因,我只能将行标记为已删除,但实际上不能将它们从 Db 中删除。

我如何告诉 EF,当我打电话时sushi.Fishes,我只得到有的记录IsDeleted = false

在当前设置中,每个 POCO都继承自 IBaseEntity,因此我可以确保该IsDeleted标志存在于所有表中。

(我使用的是 EF 4.3.1.0,不幸的是当时无法更新...)

4

0 回答 0