Я провел некоторое исследование этого вопроса на EF 4.1, и некоторые детали могут по-прежнему применяться, несмотря на то, что в EF5 были улучшены характеристики производительности.
ADO vs EF performance
Мои выводы: -Вы не будет соответствовать производительности ADO с каркасом, который должен генерировать фактическое заявление SQL динамически из C# и превратить это SQL заявление в строго типизированный объект, есть просто слишком много продолжается, даже с предварительно скомпилированными и «разогретыми» заявлениями (и тесты производительности завершают это). Это счастливый компромисс для многих, кому гораздо проще писать и поддерживать Linq на C#, чем хранить код procs и mapping.
-Вы можете использовать хранимые процедуры с равной производительностью для ADO, для меня это идеальная ситуация. Вы можете написать linq для sql в ситуациях, когда он работает, и как только вы захотите увеличить производительность, напишите sproc и импортируйте его в EF, чтобы получить наилучшую производительность.
-Это техническая причина, по которой EF не принимает требования вашего проекта и, возможно, знания вашей команды и уровень комфорта. Обязательно убедитесь, что он соответствует выбранному шаблону дизайна. EF Anti Patterns to avoid
Надеюсь, это поможет.
Я бы сказал, что нет «обходных путей», но «правильных способов его использования» –
Прежде всего, я ценю все ваши ответы, они мне полезны. Мой проект будет включать множество сложных манипуляций и итераций - каждый запрос клиента включает X итераций; каждая итерация требует поиска и нескольких вставок/обновлений. Многие клиенты делают это в то же время. Я довольно новичок в EF и ADO.NET ... просто хочу забрать мозги. – Peter