Предварительно созданный вид Entity Framework на сборке
Я только начал использовать EF 6 и заметил, что первое выполнение занимает больше времени, потому что его нужно скомпилировать, поэтому я исследовал и обнаружил, что вы можете предварительно сгенерировать представление.
Я использовал EF Power Tool для создания представления: http://visualstudiogallery.msdn.microsoft.com/72a60b14-1581-4b9b-89f2-846072eff19d/
Это dll, и я строю, используя опцию Embed in Output Assembly.
Проблема в том, что, хотя у меня есть view.cs, когда я выполняю первый запрос, у меня та же задержка, поэтому кажется, что моя библиотека не использует предварительно сгенерированное представление.
Что может быть не так? Я передаю соединение с сущностью, используя EntityConnectionStringBuilder, возвращая объект EntityConnection.
Также я попытался изменить view.cs на Embedded Resource, так как с Compile у меня не было никаких изменений, в обоих случаях у меня все еще есть первая задержка.
Я уверен, что что-то упустил, но не уверен, что.
Заранее спасибо, Лукас.
1 ответ
Представления EF5 не будут работать с EF6 (кроме того, существуют некоторые проблемы с EF6 Beta 1 и EF6 RC1, которые не позволяют использовать представления с EF6 - эти проблемы должны быть исправлены в EF6 RTM). Я создал шаблон T4 для генерации представлений для EF6 - вы можете найти более подробную информацию здесь - опять же, из-за проблем выше представлений, сгенерированных шаблоном, не будет работать для EF6 RC1. Если вы абсолютно уверены, что вам это нужно, вы можете попробовать версию с моего github - она была обновлена для работы с EF6 RTM, а также для ночных сборок. В любом случае, я почти уверен, что это не генерация представлений, которая вызывает проблемы (фактически производительность генерации представлений в EF6 была значительно улучшена). Недавно мы обнаружили несколько проблем с производительностью (см. 1674 и 1662), которые влияют на время запуска, и мы смотрим на них.
РЕДАКТИРОВАТЬ
Версия шаблона, которая работает с EF6 RTM (6.0.0.0, 6.0.1.0), была опубликована в галерее VS