Первый коммент к той статье:
Очень мощная штука для массивных запросов. Не нем написан Stack Overflow. Там в документации есть несколько примеров использования: получение строго типизированной коллекции, динамических объектов и запрос без ответа. (как то так). Если бы их здесь вкратце (так удобнее) освеить - было бы здорово :)
Отличие, пожалуй в том, что у вас происходит маппинг автоматом (судя по статье).
В ADO.NET, вам надо из ридера самому вручную забирать значения (типа reader.GetInt32(0)). Что не очень приятно, особенно при работе с большим числом сложных таблиц
Толи дело, когда описываешь класс, делаешь запрос и просишь вернуть экземпляр
User user = null;
using (IDbConnection db = new SqlConnection(connectionString))
{
user = db.Query<User>("SELECT * FROM Users WHERE Id = @id", new { id }).FirstOrDefault();
}
Собственно, вот вам и ORM. Вы не работаете с результатом запроса напрямую. У вас есть возможность сразу получить экземпляр класса и работать с ним.
А то, что на вход подается SQL-команда - выглядит, в какой-то степени, даже приятно и удобно.
Еще вот о том, почему Dapper (особенно раздел "Dapper и реляционные запросы" - ваще огонь) -
https://msdn.microsoft.com/ru-ru/magazine/mt703432.aspx
А вот про то, кто быстрее -
https://www.exceptionnotfound.net/dapper-vs-entity...