Я реализую мягкое удаление в своем приложении с столбцом IsDeleted и использую EF 6 Code First для ORM. Я хочу, чтобы отфильтровать удаленные объекты автоматически при использовании оператора точки для доступа к отложенной загрузки навигационных свойств (со многими отношения) .Для примера: Пользователь имеет много ролейEntity Framework 6 автоматическая фильтрация для ленивых навигационных свойств загрузки
public class User
{
private ICollection<Role> _roles;
public virtual ICollection<Role> Roles
{
get { return _roles?? (_roles= new List<Role>()); }
protected set { _roles= value; }
}
}
и мне нужно, что, когда я использую user.Roles, это будет автоматически удален фильтр объектов, поэтому я не буду писать это явно нравится, потому что это будет происходить во многих местах:
user.Roles.where(u => u.IsDeleted == false).ToList();
Я думал о EF перехватчик, но будет применяться для всех запросов, и я все еще хочу загружать удаленные объекты в некоторых местах из-за требований бизнеса. Есть ли другой способ достичь этого эффективно?
Спасибо.
Thanks SimpleVar. Но у моего приложения есть тысячи таких коллекций, поэтому было бы очень много времени, если я добавлю больше свойств оболочки или использую метод расширения Active(). –