Сущности. Начало

Jan 23, 2013 13:46



Таблицы сущностей

Сущности представляют собой записи таблицы. Сущности имеют первичный ключ - ссылку, с помощью которой организовываются реляционные отношения. Помимо полей сущности обладают методами, в том числе статическими, и триггерами. Поддерживают приципы ООП: инкапсуляция, наследование полиморфизм. Сущности могут быть абстрактными, в таком случае они являются только шаблонами (самих таблиц нет) для описания сущностей-наследников. Все сущности наследуются от абстрактной сущност Entity.

Entity содержит поля:
readonly ID - уникальный идентификатор, значение присваивается автоматически
readonly Ref  - собственно сама сущность
и методы:
GetType() - возвращает ссылку на метаданные
virtual ToString() - возвращает строковое представление

Абстрактные сущности могут иметь параметры типов, которые обязательно определяются в конкретных наследниках.

Пример (псевдокод):

abstract entity Reference   //абстрактный справочник с двумя параметрами - тип кода и тип наименования
where //ограничения на типы
  TCodeType: char(20)
  TDescriptionType: varchar(100)
{
//поля:
public TCodeType Code; //код
public TDescriptionType Description; //наименование
public bool DeletionMark; //пометка удаления
override string ToString() //переопределяем представление
  {
    return Description;
  }
static thistype FindByCode(TCodeType _code)  //статический поиск по коду, слово thistype - поиск по конкретной таблице ("виртуализация статических методов" или "шаблонный параметр на себя")
  {
    foreach(var c in//поиск
                     select ef as Ref
                       from thistype
                       where code=_code)
    {
        return c.Ref; //возвращаем ссылку
    }
    return null //не нашли
  }
}

entity Currency: Reference //конкретный справочник, код длины 3, наименование не более 100 символов
{
}
Previous post
Up