我想使用名为Deleted的字段来保护我的实体,以免客户端真正删除任何实体。如果他尝试删除,那么唯一的就是entity.Deleted = true;
问题在于,我不希望包含已删除的实体,我需要使用
db.Entities.Where(e => e.Deleted == false).WhateverMethod();
我知道我可以在我的Controller中使用这样的方法
private IQueryable<Entity> GetNotDeletedEntity() {
return db.Entities.Where(e => e.Deleted == false);
}
并更改db.Entities.WhateverMethod()
的每GetNotDeletedEntity().WhateverMethod()
,但我对我来说似乎很奇怪。
一个注意事项是GetNotDeletedEntity()
返回IQueryable,db.Entities
返回DbSet。这种不一致可能是将来的一个问题。
我认为有一种方法可以将DbSet扩展为像这样工作
db.Entities // include all entities
db.NotDeletedEntities // include only entities e.Deleted == false
关于如何干.Where(e => e.Deleted == false)
的任何建议都会很棒。