假设我有以下设置:
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,不幸的是当时无法更新...)