Часто при работе с БД приходится обращаться к определенным сущностям некоторым "одинаковым" образом.
Например, у нас есть таблица сотрудников:
CREATE TABLE Emp (
Id int,
Name Varchar(64),
Active byte -- признак активности
)
Чаще всего к такой таблице будут запросы, которые не показывают неактивных сотрудников, что-то вроде:
from E in Db.Emp
where E.Active == false
select E
Бывают ситуации и посложнее. Например, хочется отбирать записи некой таблицы, учитывая только последние на некоторый момент версии данных.
Было бы удобно иметь функции, которые возвращают таблицу с "предвыборкой". Например,
from M in Db.Mat(DateTime.Now)
where M.Price < 100
select M
Db.Mat при этом определялась бы, например, примерно так:
public class Database: DbManager {
public Table<MatObject> Mat(Date: DateTime) {
returm new Table<MatObject<(this).Where(M => M.Period <= Date);
}
}
Можно ли такое сделать при помощи BlToolkit ?
Если да, то как ? В каком направлении хотя бы копать ?
Заранее спасибо