Можно ли создать "виртуальные таблицы" ?
От: TheWind3 Россия  
Дата: 26.07.11 19:27
Оценка:
Часто при работе с БД приходится обращаться к определенным сущностям некоторым "одинаковым" образом.
Например, у нас есть таблица сотрудников:


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 ?
Если да, то как ? В каком направлении хотя бы копать ?

Заранее спасибо
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.