Просто запустите профилировщик и проверьте, какие запросы выдает EF.Вы увидите параметризованные запросы, которые являются основной защитой от внедрения SQL.Таким образом, ни один EF не открыт для инъекционных атак, но если вы используете EntitySQL и объединяете строки вручную, вы можете проводить инъекционные атаки на более высоком уровне.
Конечно, EF снижает производительность.Это компромисс между простой и быстрой разработкой, когда разработчикам не нужно иметь слишком много знаний о внутренних процессах / технологиях для создания приложения (в случае многих инструментов MS, обезьянка может создать приложение, но производительность и другие измерения качества будутбыть адекватным).
На самом деле эти затраты на производительность могут быть очень высокими, и это точка тестирования производительности, чтобы найти, есть ли узкое место производительности или нет.Если вы находите слишком медленную часть, вам остается только оптимизировать ее.Это может привести к рефакторингу кода или созданию хранимых процедур для обработки сложных запросов.
В случае DataServices это может быть более сложным.Клиент может запустить сложный запрос, который просто займет много времени, и вы не можете контролировать этот запрос.Некоторой защитой от этого является ограничение количества возвращаемых / запрашиваемых записей на уровне обслуживания.Если пользователь хочет больше записей, он должен указать более подробные критерии поиска.