Dapper не может придумывать количество возвращаемых строк. Если Dapper говорит, что было 4 строки, то одно из двух:
- вы нашли крайний нишевый случай, которого не было за многие годы Dapper
- ваш запрос действительно возвращает только 4 строки
Теперь я открываю до «1», но на самом деле «2» гораздо более вероятно. Я подозреваю, что настоящая проблема здесь в параметрах или их отсутствии. Никогда не используйте конкатенацию для построения SQL из значений. Попробуйте вместо этого:
const string sqlStr = @"
SELECT ce.Id, ce.ClientId, ce.EventType, ce.Value, ce.Date, a.UserName AS Doer, cevn.`Values` FROM clients.client_events ce
LEFT JOIN `z-price`.aspnetusers a ON ce.Doer = a.Id_num
LEFT JOIN clients.clients_events_value_name cevn ON ce.Id = cevn.ClientEventsId
where ClientId = @clientId and Date BETWEEN @from and @to";
var result = DefaultConnection.Query<ExtentedClientEventsModel>(
sqlStr, new { clientId, from, to = to.AddDays(1) }).AsList();
(примечание: разные базы данных имеют разный синтаксис для параметров; если @clientId
et c не работает, попробуйте :clientId
, $clientId
, et c)