Изменить сгенерированное имя файла в 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, Вы должны получить три файла:

  1. Context.tt
  2. Entity.tt
  3. 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 и имен файлов.

Повторите процесс для двух других файлов. Для получения дополнительной информации посмотрите статью в блоге Роуэн Миллер. Это должно дать вам довольно хорошее представление о том, как поступить.

Другие вопросы по тегам