Изменить сгенерированное имя файла в EF Power Tools Beta 3
Я искал, но не смог найти ответ на этот вопрос. В настоящее время наши Db-пользователи префиксы таблиц - например, tblUsers. Я обновил шаблоны EF, чтобы удалить "tbl" из сгенерированных имен классов. Однако я все еще не могу понять, как изменить имя выходного файла, чтобы соответствовать.
Это возможно или я спрашиваю о луне? Я использую EF Power Tools Beta 3 в VS 2012. Любая помощь будет с благодарностью!
1 ответ
Патрик, вам нужно изменить шаблон T4, используемый EF Power Tools. Когда вы хотите создать сначала код со всеми сопоставлениями, а не Reverse Engineer Code First
вариант, выберите Customize Reverse Engineer Template
, Вы должны получить три файла:
- Context.tt
- Entity.tt
- Mapping.tt
Например, в Mapping.tt есть строка, которая читает MetadataProperties из TableSet и извлекает имя таблицы. Линия выглядит так:
var tableSet = efHost.TableSet;
var tableName = (string)tableSet.MetadataProperties["Table"].Value ?? tableSet.Name;
Здесь вам нужно внести изменения и сделать что-то вроде:
var newTableName = tableName.Replace("tbl", String.Empty);
Конечно, вы должны выбрать другую стратегию и использовать Substring
Метод или регулярное выражение для чтения и удаления первых трех символов. После этого вы должны пройти через файл tt и использовать свою логику там, где вы хотите использовать tableName
и где пользователю newTableName
переменная. Вы будете хранить tableName, где сопоставление выполняется с таблицей в базе данных, и newTableName, где вы хотите использовать это имя для ваших классов POCO и имен файлов.
Повторите процесс для двух других файлов. Для получения дополнительной информации посмотрите статью в блоге Роуэн Миллер. Это должно дать вам довольно хорошее представление о том, как поступить.