#entity-framework #t4
#entity-framework #т4 #t4
Вопрос:
В шаблонах entity framework T4 я могу использовать класс CodeGenerationTools.
Например:
void WriteProperty(**CodeGenerationTools** code, EdmProperty edmProperty)
{
WriteProperty(Accessibility.ForProperty(edmProperty),
code.Escape(edmProperty.TypeUsage),
code.Escape(edmProperty),
code.SpaceAfter(Accessibility.ForGetter(edmProperty)),
code.SpaceAfter(Accessibility.ForSetter(edmProperty)));
}
Однако я не могу найти, где определен этот класс.
Из какой сборки он взят? Каковы его члены?
Спасибо
Ответ №1:
Это не класс из assembly. Это включенный класс из другого шаблона:
<#@ include file="EF.Utility.CS.ttinclude"#>
Эти файлы обычно хранятся в каталоге установки VS:
%VSINSTALLDIR%Common7IDEExtensionsMicrosoftEntity Framework ToolsTemplatesIncludes
Комментарии:
1. Как вы думаете, насколько безопасно переносить класс в код? Я спрашиваю, потому что я пытаюсь сопоставить
bool
с OracleNUMBER(1,0)
без истинного подхода «сначала модель». Я использовал программу EDMX writer для разбора моегоDbContext
файла в xml и построения базы данных, а теперь использую fluent API для сопоставления с существующей таблицей… проблема заключается в приведенном выше странном отображении. Сначала он отлично работает с моделью, поэтому я пытаюсь выяснить, как я могу сделать это программно. Я думаю, что это преобразование TT, упомянутое выше.