У нас есть некоторые панели инструментов в приложении, в которых есть 10 000 записей, конечно, у нас есть разбиение на страницы, но EF очень плох с точки зрения производительности, и все те Get Запросы для массового извлечения очень медленные.Заменить запрос EntityFramework с ORM для повышения производительности - необходимо поддерживать iqueryable
Я искал несколько вариантов замены этих запросов либо с помощью Micro-ORM, либо с помощью ORMLite, либо, к сожалению, они не поддерживают iqueryable, что необходимо для наших панелей мониторинга/сетей, потому что у нас много чего происходит например, фильтрация-поиск-сортировка и т. д.
Вопрос, который я хотел бы задать, есть ли кто-нибудь, столкнувшийся с подобной ситуацией? Какой путь вы выбрали?
Ну, вы можете править dapper out - он не suppot 'IQueryable'; посмотрели ли вы на такие инструменты, как LLBLGenPo? вы пробовали самые последние версии EF? –
Да, мы используем EF 6.0+ - я не заглянул в LLBLGenPo, позвольте мне изучить это! – vran
Можете ли вы привести пример медленного запроса LINQ? Большую часть времени, заменяя EF другим инструментом, ничего не улучшит, если вы все еще хотите поддержку IQueryable. Панели мониторинга с только 10 000 записей ничего, даже несколько миллионов не так много, так что проблема действительно вызвана из-за Entity Framework? Существует множество опций и сторонней библиотеки для повышения производительности, таких как Query Cache, Include Optimized, Include Filtering и т. Д. Я думаю, что первый шаг, прежде чем думать о переключении на другую ORM, поддерживающую «IQueryable», будет заключаться в том, чтобы убедиться, что EF не может сделать работа права. –