Entity Framework CF (DbContext) и скомпилированные запросы - PullRequest
2 голосов
/ 02 декабря 2011

Насколько я понимаю, скомпилированные запросы в настоящее время не поддерживают Entity Framework Code First (4.2). Падение производительности при отсутствии использования скомпилированных запросов довольно высокое, поэтому я пытаюсь найти решение.

На данный момент я выполнил следующую работу: Создайте новый класс, который наследует от ObjectContext - создайте его экземпляр вместе с DbContext, используя тот же EntityConnection. Используйте CreateObjectSet <> для создания ObjectSets для сущностей и используйте этот контекст для скомпилированных запросов. Это работает (для небольших запросов производительность возрастает в 10 раз), но это довольно громоздко из-за необходимости создания свойств ObjectSet для каждого нового объекта (! DRY).

Кто-нибудь знает более элегантный способ решения этой проблемы?

1 Ответ

2 голосов
/ 04 декабря 2011

Похоже, вы используете DbContext с EDMX.Если производительность запросов является вашей главной задачей и вам нужно использовать скомпилированные запросы, не используйте DbContext API и пишите все приложение с ObjectContext API.Использование ObjectContext для одной половины приложения и DbContext для второй половины приложения должно привести к дублированию кода.

DbContext API имеет некоторые ограничения и, вероятно, не будет поддерживать выборочно скомпилированные запросы в ближайшем будущем.В следующей версии EF будет предусмотрена возможность автоматической компиляции и повторного использования всех запросов LINQ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...