Поделиться через


Как предварительно создать представления для повышения производительности запросов (платформа Entity Framework)

Чтобы обеспечить возможность выполнения запросов по отношению к модели Entity Data Model (EDM), платформа Entity Framework формирует набор представлений, предназначенных для доступа к базе данных. Платформа Entity Framework создает представления при первом выполнении запроса, а затем поддерживает их в течение всего времени существования экземпляра ObjectContext. Создание представлений составляет значительную долю общей стоимости выполнения единичного запроса, поэтому платформа Entity Framework позволяет заранее создавать эти представления и включать их в скомпилированный проект. Программа Генератор модели EDM (EdmGen.exe), кроме формирования и проверки файлов сопоставления и модели EDM, позволяет предварительно создавать эти представления. В данном разделе показано, как при помощи программы EdmGen.exe заранее создать представления для модели School и добавить файл представления в проект. Создание модели School на платформе Entity Framework производилось в разделе Краткое руководство. Последняя процедура показывает, как повторно добавить файлы модели и сопоставления в веб-приложение ASP.NET в виде внедренных ресурсов.

NoteПримечание.

В процедурах, описанных в этом разделе, используются события перед построением и после построения в среде Visual Studio, которые не поддерживаются на веб-узлах ASP.NET. Чтобы заранее создать представления для модели EDM, применяемые на веб-узле ASP.NET, необходимо создать модель EDM в отдельной библиотеке классов, выполнить следующую процедуру для проекта библиотеки классов и добавить ссылку на этот проект в проект веб-узла ASP.NET. В качестве альтернативы можно попробовать вместо веб-узла ASP.NET воспользоваться проектом веб-приложения ASP.NET. Это позволить при помощи процедуры, описанной в данном разделе, включить заранее созданные представления в тот же проект, что и веб-приложение ASP.NET.

Заранее созданные представления проверяются во время выполнения, чтобы обеспечить их согласованность с текущей версией модели EDM. Эта процедура обеспечивает соответствие представлений и модели EDM. Если в процессе построения уже созданы файлы модели и сопоставления в выходном каталоге, то первую процедуру можно пропустить. В процедурах, описанных в этом разделе, используется модель School. Эту модель можно создать, выполнив рекомендации раздела Краткое руководство (платформа Entity Framework).

NoteПримечание.

Для выполнения процедур этого раздела необходима среда Visual Studio 2008 с пакетом обновления 1 (SP1).

Создание файлов модели и сопоставления для модели School в выходном каталоге

  1. В обозревателе решений дважды щелкните файл School.edmx.

    Модель School будет отображена в конструкторе сущностей.

  2. В обозревателе моделей выберите модель SchoolModel и замените Обработка артефактов метаданных на Копировать в выходной каталог.

    Это обеспечит создание в выходном каталоге файлов модели и сопоставления.

  3. Постройте решение.

    При этом файлы модели и сопоставления будут созданы в выходном каталоге.

Добавление средств создания представления в проект Visual Basic

  1. В обозревателе решений выберите проект, для которого необходимо задать событие построения.

  2. В меню Проект выберите пункт **Свойства проекта.

  3. На странице Свойства откройте вкладку Компиляция.

  4. Нажмите кнопку События построения.

  5. В диалоговом окне События построения добавьте следующее событие перед построением (без разрывов строк).

    "%windir%\Microsoft.NET\Framework\v3.5\EdmGen.exe" /nologo /language:VB 
    /mode:ViewGeneration "/inssdl:$(TargetDir)School.ssdl" 
    "/incsdl:$(TargetDir)School.csdl" "/inmsl:$(TargetDir)School.msl" 
    "/outviews:$(ProjectDir)School.Views.vb"
    
  6. Нажмите кнопку ОК.

  7. Закройте страницу Свойства проекта.

  8. Постройте решение.

    При этом будет создан файл представления School.Views.cs.

  9. В Обозревателе решений щелкните файл проекта правой кнопкой мыши и выберите пункт Добавить существующий элемент.

  10. В диалоговом окне Добавление существующего элемента перейдите в корневую папку проекта и выберите файл School.Views.vb.

  11. Нажмите кнопку Добавить.

  12. Постройте решение.

Добавление средств создания представления в проект C#

  1. В обозревателе решений выберите проект, для которого необходимо задать событие построения.

  2. В меню Проект выберите пункт Свойства.

  3. Откройте вкладку События построения.

  4. В окне Командная строка события перед построением добавьте следующее событие перед построением (без разрывов строк).

    "%windir%\Microsoft.NET\Framework\v3.5\EdmGen.exe" /nologo /language:CSharp 
    /mode:ViewGeneration "/inssdl:$(TargetDir)School.ssdl" 
    "/incsdl:$(TargetDir)School.csdl" "/inmsl:$(TargetDir)School.msl" 
    "/outviews:$(ProjectDir)School.Views.cs"
    
  5. Постройте решение.

    При этом будет создан файл представления School.Views.cs.

  6. В Обозревателе решений щелкните файл проекта правой кнопкой мыши и выберите пункт Добавить существующий элемент.

    Откроется диалоговое окно Добавление существующего элемента.

  7. Перейдите в корневую папку проекта и выберите файл School.Views.cs.

  8. Нажмите кнопку Добавить.

  9. Постройте решение.

Повторное добавление файлов модели и сопоставления в проект ASP.NET в качестве внедренных ресурсов

  1. В меню Проект выберите пункт Добавить существующий элемент.

  2. Перейдите в выходной каталог проекта, выберите файл School.csdl и нажмите кнопку ОК.

  3. В обозревателе решений выберите добавленный файл.

  4. В окне Свойства задайте для параметра Действие сборки значение Внедренный ресурс.

  5. Повторите шаги с 1 по 3 для файлов School.ssdl и School.msl.

  6. В окне Обозреватель решений дважды щелкните файл App.config, а затем задайте параметр Metadata в атрибуте connectionString в одном из следующих форматов.

    • Metadata=``res://<assemblyFullName>/<resourceName>;

    • Metadata=``res://*/<resourceName>;

    • Metadata=res://*;

    Параметр resourceName может включать пространство имен проекта. Дополнительные сведения см. в разделе Строки соединения (платформа Entity Framework).

См. также

Справочник

Генератор модели EDM (EdmGen.exe)

Другие ресурсы

Средства работы с моделью EDM