Шаблоны создания кода конструктора
При создании модели с помощью Entity Framework Designer классы и производный контекст создаются автоматически. Помимо создания кода по умолчанию, вам доступны несколько шаблонов, которые можно использовать для настройки генерируемого кода. Эти шаблоны представляют собой текстовые шаблоны T4, позволяющие при необходимости настраивать шаблоны.
Создаваемый по умолчанию код зависит от версии Visual Studio, в которой создается модель.
- Модели, созданные в Visual Studio 2012 и 2013, будут создавать классы простых сущностей POCO и контекст, который является производным от упрощенного контекста DbContext.
- Модели, созданные в Visual Studio 2010, будут создавать классы сущностей, которые являются производными от класса EntityObject, и контекст, который является производным от ObjectContext.
Примечание.
После добавления модели рекомендуется переключиться на шаблон генератора DbContext.
На этой странице рассматриваются доступные шаблоны, а затем приводятся инструкции по добавлению шаблона в модель.
Доступные шаблоны
Группа разработки Entity Framework предоставляет перечисленные ниже шаблоны.
Генератор DbContext
Этот шаблон предназначен для создания классов простых сущностей POCO и контекста, который является производным от DbContext, с помощью EF6. Это рекомендуемый шаблон, если только у вас нет причин для использования одного из других шаблонов, перечисленных ниже. Этот шаблон создания кода предоставляется по умолчанию при использовании последних версий Visual Studio (Visual Studio 2013 и более поздние версии): при создании модели этот шаблон применяется по умолчанию, а файлы T4 (TT-файлы) вложены в EDMX-файл.
Предыдущие версии Visual Studio
- Visual Studio 2012. Для получения шаблонов DbContextGenerator для EF 6.x потребуется установить последнюю версию инструментов Entity Framework для Visual Studio. Дополнительные сведения см. на странице о получении Entity Framework.
- Visual Studio 2010. Шаблоны DbContextGenerator для EF 6.x недоступны для Visual Studio 2010.
Генератор DbContext для EF 5.x
При работе в более старой версии пакета NuGet для EntityFramework (с номером основной версии 5) необходимо использовать шаблон генератора DbContext для EF 5.x.
Если вы используете Visual Studio 2013 или 2012, этот шаблон уже установлен.
Если вы используете Visual Studio 2010, при добавлении шаблона необходимо выбрать вкладку Online (В Интернете), чтобы скачать его из коллекции Visual Studio. Или шаблон можно установить заранее непосредственно из коллекции Visual Studio. Так как шаблоны входят в состав более поздних версий Visual Studio, версии из коллекции устанавливаются только в Visual Studio 2010.
- Генератор DbContext для EF 5.x для C#
- Генератор DbContext для EF 5.x для веб-сайтов на C#
- Генератор DbContext для EF 5.x для VB.NET
- Генератор DbContext для EF 5.x для веб-сайтов на VB.NET
Генератор DbContext для EF 4.x
Применяя более старую версию пакета NuGet для EntityFramework (с номером основной версии 4), необходимо использовать шаблон Генератор DbContext для EF 4.x. Его можно найти на вкладке Online (В сети) при добавлении шаблона, либо шаблон можно установить заранее непосредственно из коллекции Visual Studio.
- Генератор DbContext для EF 4.x для C#
- Генератор DbContext для EF 4.x для веб-сайтов на C#
- Генератор DbContext для EF 4.x для VB.NET
- Генератор DbContext для EF 4.x для веб-сайтов на VB.NET
Генератор EntityObject
Этот шаблон используется для создания классов сущностей, которые являются производными от класса EntityObject, и контекста, который является производным от ObjectContext.
Примечание.
Возможность использования шаблона "Генератор DbContext"
Сейчас генератор DbContext представляет собой рекомендуемый шаблон для новых приложений. Генератор DbContext использует преимущества более простого API DbContext. Генератор EntityObject по-прежнему доступен для поддержки существующих приложений.
Visual Studio 2010, 2012 и 2013
При добавлении шаблона необходимо выбрать вкладку Online (В сети), чтобы скачать его из коллекции Visual Studio. Или шаблон можно установить заранее непосредственно из коллекции Visual Studio.
- Генератор EntityObject для EF 6.x для C#
- Генератор EntityObject для EF 6.x для веб-сайтов на C#
- Генератор EntityObject для EF 6.x для VB.NET
- Генератор EntityObject для EF 6.x для веб-сайтов на VB.NET
Генератор EntityObject для EF 5.x
Если вы используете Visual Studio 2012 или 2013, при добавлении шаблона необходимо выбрать вкладку Online (В сети), чтобы скачать его из коллекции Visual Studio. Или шаблон можно установить заранее непосредственно из коллекции Visual Studio. Так как шаблоны включены в Visual Studio 2010, версии коллекции можно установить только в Visual Studio 2012 и 2013.
- Генератор EntityObject для EF 5.x для C#
- Генератор EntityObject для EF 5.x для веб-сайтов на C#
- Генератор EntityObject для EF 5.x для VB.NET
- Генератор EntityObject для EF 5.x для веб-сайтов на VB.NET
Если требуется просто создать код ObjectContext без изменения шаблона, вернитесь к созданию кода EntityObject.
Если вы используете Visual Studio 2010, этот шаблон уже установлен. При создании модели в Visual Studio 2010 этот шаблон используется по умолчанию, но TT-файлы не включены в проект. Чтобы настроить шаблон, его следует добавить в проект.
Генератор сущностей с самостоятельным отслеживанием (STE)
Этот шаблон предназначен для создания классов сущностей с самостоятельным отслеживанием и контекста, который является производным от ObjectContext. В приложении EF контекст объекта отвечает за отслеживание изменений в сущностях. Однако в многоуровневых сценариях на уровне, изменяющем сущности, контекст может быть недоступен. Сущности с самостоятельным отслеживанием позволяют отслеживать изменения на любом уровне. Дополнительные сведения см. в разделе Сущности с самостоятельным отслеживанием.
Примечание.
Шаблон STE является нерекомендуемым
Больше не рекомендуется использовать шаблон STE в новых приложениях, но он по-прежнему будет доступен для поддержки существующих приложений. Другие варианты, применимые в многоуровневых сценариях, см. в статье об отключенных сущностях.
Примечание.
У шаблона STE нет версии для EF 6.x.
Примечание.
У шаблона STE нет версии для Visual Studio 2013.
Visual Studio 2012
Если вы используете Visual Studio 2012, при добавлении шаблона необходимо выбрать вкладку Online (В Интернете), чтобы скачать его из коллекции Visual Studio. Или шаблон можно установить заранее непосредственно из коллекции Visual Studio. Так как шаблоны входят в состав Visual Studio 2010, версии из коллекции устанавливаются только в Visual Studio 2012.
- Генератор STE для EF 5.x для C#
- Генератор STE для EF 5.x для веб-сайтов на C#
- Генератор STE для EF 5.x для VB.NET
- Генератор STE для EF 5.x для веб-сайтов на VB.NET
Visual Studio 2010**
Если вы используете Visual Studio 2010, этот шаблон уже установлен.
Генератор сущностей POCO
Этот шаблон предназначен для создания классов сущностей POCO и контекста, который является производным от ObjectContext.
Примечание.
Возможность использования шаблона "Генератор DbContext"
Сейчас "Генератор DbContext" представляет собой рекомендуемый шаблон для создания классов POCO в новых приложениях. "Генератор DbContext" использует новый API DbContext и может создавать упрощенные классы POCO. "Генератор сущностей POCO" по-прежнему доступен для поддержки существующих приложений.
Примечание.
У шаблона STE нет версии для EF 5.x или EF 6.x.
Примечание.
У шаблона POCO нет версии для Visual Studio 2013.
Visual Studio 2012 и Visual Studio 2010
При добавлении шаблона необходимо выбрать вкладку Online (В сети), чтобы скачать его из коллекции Visual Studio. Или шаблон можно установить заранее непосредственно из коллекции Visual Studio.
- Генератор POCO для EF 4.x для C#
- Генератор POCO для EF 4.x для веб-сайтов на C#
- Генератор POCO для EF 4.x для VB.NET
- Генератор POCO для EF 4.x для веб-сайтов на VB.NET
Что такое шаблоны "Веб-сайты"
Шаблоны "Веб-сайты" (например, веб-сайты генератора DbContext для EF 5.x для C#) предназначены для использования в проектах веб-сайтов, созданных через Файл —> Новый —> Веб-сайт…. Они отличаются от веб-приложений, созданных через Файл —> Новый —> Проект…, в которых используются стандартные шаблоны. Для этих целей предоставляются отдельные шаблоны,которые требуются системе шаблонов элементов в Visual Studio.
Использование шаблона
Чтобы приступить к использованию шаблона создания кода, щелкните правой кнопкой мыши пустое место в области конструктора в конструкторе EF Designer и выберите Добавить элемент создания кода….
Если вы уже установили нужный шаблон (или он был включен в состав Visual Studio), он будет доступен в разделе Код или Данные в меню слева.
Если шаблон еще не установлен, в левом меню выберите пункт Online (В Интернете) и найдите нужный шаблон.
Если вы используете Visual Studio 2012, новые TT-файлы будут вложены в EDMX-файл.*
Примечание.
Для моделей, созданных в Visual Studio 2012, потребуется удалить шаблоны, используемые для создания кода по умолчанию. В противном случае будут созданы повторяющиеся классы и контекст. Файлы по умолчанию: <имя_модели>.tt и <имя_модели>.context.tt.
Если вы используете Visual Studio 2010, TT-файлы добавляются непосредственно в проект.