说我有以下设置:
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
的记录?
在当前设置中, EVERY POCO 继承自IBaseEntity,因此我可以确保所有表中都存在IsDeleted
标志。
(我使用EF 4.3.1.0,遗憾的是当时无法更新......)