Создание и генерация типов данных для СУБД и программного кода

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

Примеры настройки карты типов доступны в следующих статьях:

Разрешение типа при генерации

Расширение карты типов возможно за счёт использования синонимов типов (классы со стереотипом typedef).

На карте типов можно написать, в какой тип целевого языка отображается синоним типа на диаграмме.

Тип Отображается в
Строка40 string
string System.String

Преобразование типов при генерации кода происходит следующим образом: если какой-либо тип не является стандартным (для .Net framework), он преобразуется в соответствии с подстановкой.
После подстановки всё повторяется вновь: снова преобразуется, если не является стандартным.
Так повторяется, пока не произойдет приведения к стандартному типу, с которым генерируется код.
Если нестандартный тип невозможно преобразовать (в подстановке указан нестандартный тип, для которого отсутствует другая подстановка), генерация кода останавливается с ошибкой.
В данном примере, видно, что Строка40 отображается в string (предопределённый тип), который в свою очередь преобразуется в тип System.String Microsoft .Net framework.

Карта типов для базы данных

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

Если добавить определения типов через typedef, то карта типов может принять следующий вид:

Карта типов для программного кода

Получить доступ к карте типов для программного кода можно через контекстное меню стадии в настройках генератора.

Карта типов содержит следующие столбцы:

  • Типы, которые можно использовать на диаграмме классов.
  • Соответствующие типы программного кода.
  • Сборка, в которой расположен программный тип (используется для типов, которые не являются .Net-типами).

Если добавить определения типов через typedef, то карта типов может принять следующий вид: