2010-10-12 2 views
1

Что я хочу достичь более или менее инверсия этого:T4 для создания Enum из таблицы SQL Server значений

http://www.olegsych.com/2008/07/t4-template-for-generating-sql-view-from-csharp-enumeration/

У меня есть группа значения таблица (имена перечислений) и таблица значений (enum), и хотите превратить их в перечисления. Оба находятся в SQL Server, и оба они находятся в формате .edmx (так что было бы довольно много способов прочитать значения).

Есть ли что-то «там», которое уже делает это (и я его не нашел)? Если нет, то было бы лучше всего идти о чтении данных (SMO, EDMX с динамической нагрузкой, ...)

ответ

0

Хорошо, вот как я реализовал его:

  • Использование VolatileAssembly из Т4 Инструментарий для ссылки на сборку, которая ...
  • Реализует класс-помощник T4, который выполняет всю работу базы данных (при использовании EF, обязательно используйте строку соединения при создании экземпляра контекста)
  • В .tt просто позвоните в класс-помощник T4, чтобы получить нужные вам данные и создать ваши классы (0)
3

Я положил несколько больше усилий в написании such a template так он делает все это:

  • генерирует значение перечисления с явными целочисленными значениями;
  • использует соглашение об именах пространства имен Visual Studio, поэтому сгенерированные перечисления имеют пространство имен по умолчанию проекта с добавленными вложенными папками (как и любой файл кода в Visual Studio);
  • добавляет полную документацию по перечислению XML с использованием дополнительных значений столбца таблицы описания; если у вас их нет, неважно;
  • правильно называет сгенерированный файл и добавляет в код дополнительный атрибут, поэтому сгенерированный enum не анализируется анализом кода;
  • Значения таблицы многословного соответствия корректно объединены с эквивалентами на основе паскаля (то есть Многозначное значение становится MultiWordValue);
  • значения перечисления всегда начинаются с буквы;
  • все значения перечисления состоят только из букв и цифр, все остальное вырезается;

В любом случае. Все очень хорошо документировано в this blog post.

Смежные вопросы