Могу ли я использовать dapper-dot-net с Entity Framework?

Я пытаюсь использовать dapper-dot-net, чтобы ускорить работу в моем приложении asp.net mvc. Я также использую EF5 Code.

Так как dapper-dot-net - это просто некоторые расширения для IDbConnection, могу ли я просто использовать

DbContext.Database.Connection 

использовать dapper-dot-net? Я проверяю, что он работает. Однако я не уверен, что это правильный способ его использования? Особенно, когда я использую этот путь, будет ли Entity Framework иметь какое-то влияние, которое может повредить производительность?

Ответ 1

Использование Dapper может стать значительным улучшением производительности в определенных сценариях.

Вы можете разделить EF-соединение с Dapper. Однако (хотя вряд ли это будет проблемой) вы должны учитывать проблемы concurrency (например, из-за попыток связать несколько считывателей данных с тем же соединением).

Если вы столкнулись с такими проблемами, у вас есть возможность дать новое подключение к Dapper с помощью строки подключения (DbContext.Database.Connection.ConnectionString) вместо совместного использования.

Ответ 2

Да, вы можете использовать его таким образом. Поскольку Dapper работает только над методами расширения, вы можете использовать его для чувствительных к производительности областей вашего кода. И вы можете продолжать использовать EF для других областей вашего кода. Запросы, которые у вас есть, которые все еще используют EF, будут не такими быстрыми, но, по крайней мере, запросы с использованием Dapper будут быстрее.