У меня есть таблица под названием «Пользователи», в которой есть столбец «удален», логическое значение, указывающее, что пользователь «удален» из системы (без фактического удаления, конечно).
У меня также есть много таблиц, у которых есть FK для столбца Users.user_id. Subsonic генерирует (очень красиво) код для всех внешних ключей аналогичным образом:
public IQueryable<person> user
{
get
{
var repo=user.GetRepo();
return from items in repo.GetAll()
where items.user_id == _user_id
select items;
}
}
Хотя это и хорошо, но есть ли способ сгенерировать код таким образом, чтобы всегда отфильтровывать и «удаленных» пользователей?
В офисе здесь единственное предложение, которое мы можем придумать, - это использовать частичный класс и расширять его. Очевидно, это неприятно, когда существует множество классов, использующих таблицу User, не говоря уже о том, что легко случайно использовать неправильное свойство (User vs ActiveUser в этом примере):
public IQueryable<User> ActiveUser
{
get
{
var repo=User.GetRepo();
return from items in repo.GetAll()
where items.user_id == _user_id and items.deleted == 0
select items;
}
}
Любые идеи?