Как предварительно создать представления для повышения производительности запросов (платформа 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 в виде внедренных ресурсов.
Примечание. |
---|
В процедурах, описанных в этом разделе, используются события перед построением и после построения в среде Visual Studio, которые не поддерживаются на веб-узлах ASP.NET. Чтобы заранее создать представления для модели EDM, применяемые на веб-узле ASP.NET, необходимо создать модель EDM в отдельной библиотеке классов, выполнить следующую процедуру для проекта библиотеки классов и добавить ссылку на этот проект в проект веб-узла ASP.NET. В качестве альтернативы можно попробовать вместо веб-узла ASP.NET воспользоваться проектом веб-приложения ASP.NET. Это позволить при помощи процедуры, описанной в данном разделе, включить заранее созданные представления в тот же проект, что и веб-приложение ASP.NET. |
Заранее созданные представления проверяются во время выполнения, чтобы обеспечить их согласованность с текущей версией модели EDM. Эта процедура обеспечивает соответствие представлений и модели EDM. Если в процессе построения уже созданы файлы модели и сопоставления в выходном каталоге, то первую процедуру можно пропустить. В процедурах, описанных в этом разделе, используется модель School. Эту модель можно создать, выполнив рекомендации раздела Краткое руководство (платформа Entity Framework).
Примечание. |
---|
Для выполнения процедур этого раздела необходима среда Visual Studio 2008 с пакетом обновления 1 (SP1). |
Создание файлов модели и сопоставления для модели School в выходном каталоге
В обозревателе решений дважды щелкните файл School.edmx.
Модель School будет отображена в конструкторе сущностей.
В обозревателе моделей выберите модель SchoolModel и замените Обработка артефактов метаданных на Копировать в выходной каталог.
Это обеспечит создание в выходном каталоге файлов модели и сопоставления.
Постройте решение.
При этом файлы модели и сопоставления будут созданы в выходном каталоге.
Добавление средств создания представления в проект Visual Basic
В обозревателе решений выберите проект, для которого необходимо задать событие построения.
В меню Проект выберите пункт **Свойства проекта.
На странице Свойства откройте вкладку Компиляция.
Нажмите кнопку События построения.
В диалоговом окне События построения добавьте следующее событие перед построением (без разрывов строк).
"%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"
Нажмите кнопку ОК.
Закройте страницу Свойства проекта.
Постройте решение.
При этом будет создан файл представления School.Views.cs.
В Обозревателе решений щелкните файл проекта правой кнопкой мыши и выберите пункт Добавить существующий элемент.
В диалоговом окне Добавление существующего элемента перейдите в корневую папку проекта и выберите файл School.Views.vb.
Нажмите кнопку Добавить.
Постройте решение.
Добавление средств создания представления в проект C#
В обозревателе решений выберите проект, для которого необходимо задать событие построения.
В меню Проект выберите пункт Свойства.
Откройте вкладку События построения.
В окне Командная строка события перед построением добавьте следующее событие перед построением (без разрывов строк).
"%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"
Постройте решение.
При этом будет создан файл представления School.Views.cs.
В Обозревателе решений щелкните файл проекта правой кнопкой мыши и выберите пункт Добавить существующий элемент.
Откроется диалоговое окно Добавление существующего элемента.
Перейдите в корневую папку проекта и выберите файл School.Views.cs.
Нажмите кнопку Добавить.
Постройте решение.
Повторное добавление файлов модели и сопоставления в проект ASP.NET в качестве внедренных ресурсов
В меню Проект выберите пункт Добавить существующий элемент.
Перейдите в выходной каталог проекта, выберите файл School.csdl и нажмите кнопку ОК.
В обозревателе решений выберите добавленный файл.
В окне Свойства задайте для параметра Действие сборки значение Внедренный ресурс.
Повторите шаги с 1 по 3 для файлов School.ssdl и School.msl.
В окне Обозреватель решений дважды щелкните файл App.config, а затем задайте параметр Metadata в атрибуте connectionString в одном из следующих форматов.
Metadata=``res://<assemblyFullName>/<resourceName>;
Metadata=``res://*/<resourceName>;
Metadata=res://*;
Параметр
resourceName
может включать пространство имен проекта. Дополнительные сведения см. в разделе Строки соединения (платформа Entity Framework).
См. также
Справочник
Генератор модели EDM (EdmGen.exe)