Добавление пользовательского шаблона t4 в раскрывающийся список "Шаблон генерации DDL"

Я знаю, что могу добавить шаблон в папку

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\ Инструменты Entity Framework \DBGen

чтобы сделать его видимым в выпадающем списке Шаблон генерации DDL, но затем мне нужно распространить шаблон среди членов моей команды, чтобы они могли добавить шаблон в ту же папку.

Я надеялся, что смогу достичь того же результата, добавив шаблон в решение VS 2012 и сделав его видимым в том же выпадающем списке

Вы знаете способ достичь этого? Я использую VS 2012 и для создания базы данных я использую подход Model First

2 ответа

Я поиграл с этим сегодня вечером и обнаружил, что это возможно, но это своего рода хак. Вам нужно будет отредактировать файл edmx вручную и убедиться, что он контролируется версией, потому что вам нужно редактировать секцию конструктора файла edmx (автоматически сгенерированную). Прежде всего, скопируйте шаблон t4 в корневой каталог вашего проекта (возможно, он должен находиться в той же папке, что и edmx, не уверен). Затем добавьте шаблон t4 в ваш проект. Теперь удалите пользовательскую запись инструмента (в свойствах), чтобы он не пытался автоматически генерировать шаблон t4. наконец, добавьте свойство конструктора ниже в правильном месте в файле edmx (я включил контекст, чтобы найти правильное место):

  <!-- EF Designer content (DO NOT EDIT MANUALLY BELOW HERE) -->
    <edmx:Designer xmlns="http://schemas.microsoft.com/ado/2009/11/edmx">
      <edmx:Options>
        <DesignerInfoPropertySet>
          <DesignerProperty Name="DDLGenerationTemplate" Value="SSDLToSQLite3.tt" />

В итоге я создал собственный шаблон для генерации полей datetime2. Хотя я не смог отобразить шаблон в раскрывающемся списке в окне свойств, я смог добавить шаблон в ту же папку, что и мой.edmx, включить его в решение, а затем ввести имя файла шаблона непосредственно в поле свойства дизайнера, заменяющее значение по умолчанию. Кажется, что значение сохраняется после генерации баз данных и сущностей, мне не нужно было напрямую редактировать edmx XML, и мой пользовательский шаблон теперь находится под контролем исходного кода рядом с местом его использования.

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