?

Log in

No account? Create an account
Сущности. Начало
naf2000



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


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


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


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


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


abstract entity Reference <TCodeType, TDescriptionType>  //абстрактный справочник с двумя параметрами - тип кода и тип наименования
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 <char(3), varchar(100)> //конкретный справочник, код длины 3, наименование не более 100 символов
{
}


Привет всем
naf2000
Привет всем!