У меня есть таблица с именем «Пользователи», в которой есть столбец с именем «удалено», логическое значение, указывающее, что пользователь «удален» из системы (без фактического удаления, конечно).
У меня также есть много таблиц, которые имеют 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 против 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;
}
}
Есть идеи?