Зачем использовать Dapper, если я не хочу писать свой запрос на SQL - PullRequest
0 голосов
/ 05 февраля 2019

Проект, над которым я работаю, содержит 90% бизнес-логики в хранимых процедурах.Я рассмотрел Dapper как возможный путь для переноса некоторых из этих бизнес-правил на уровень приложений.Преимущества для меня очевидны в том, что я могу выполнять модульное тестирование и т. Д. И т. Д.

Кажется, что Dapper помогает сопоставлять объекты с классами посредством запросов sql.Для меня этого недостаточно, потому что я хотел бы встроить свои запросы в класс приложения, такой как сервис, а затем выполнить их модульное тестирование, прежде чем перейти в свой репозиторий (он же Dapper).Я ожидал, что ORM переведет мой запрос в sql.Более щадящие швы не должны использоваться таким образом.Поэтому мне интересно, какой смысл, если мне все еще придется строить всю свою бизнес-логику в SQL.

Мой вопрос, нужен ли мне другой ORM, такой как спящий режим?Я думаю, что я ищу некоторые рекомендации о том, как оценить этот инструмент.

Ответы [ 2 ]

0 голосов
/ 16 февраля 2019

Вы должны взглянуть на SQL Plus Dot Net.Это обратная структура сущностей, то есть, где структура сущностей строит операторы SQL из вашего кода C #, SQL + .net строит код C # из вашего SQL.Это действительно первая настоящая инновация в области доступа к данным за долгое время.

0 голосов
/ 06 февраля 2019

Мой опыт показывает, что платформы ORM существуют по спектру функций и сложности, часто с обратными компромиссами в скорости и простоте использования.

Для меня Dapper находится в самом конце спектра с точки зренияфункций и сложности, но с компромиссом, что его скорость исключительна.Это не значит, что Dapper прост и не имеет функций, просто у него нет таких функций, как сеансы, построение запросов и т. Д., Которые вы найдете в ORM на другом конце этого спектра, например, NHibernate.

Если вы хотите ORM, который будет строить SQL-запросы на основе объектно-ориентированной доменной модели, то Dapper не для вас.NHibernate, Entity Framework, LLBLGen и ORMLite (?) - это опции, которые вы можете посмотреть.Nb Я ожидаю, что есть другие, которые я пропустил.

...