Обработка Dapper возвращает пустой набор результатов

dapper datareader

Вопрос

Мы используем Dapper для сопоставления наших данных sql, и до сих пор он работал очень хорошо. У меня есть случай, хотя мы делаем что-то похожее:

someObject = con.Query<T>("GetInfoSproc", p, commandType: CommandType.StoredProcedure).Single();

Это отлично работает, пока хранимая процедура, которую я вызываю, возвращает данные. Бывают случаи, когда хранимая процедура может не возвращать результат и возвращать ошибку в параметр out. Это, похоже, вызывает проблему в Dapper, потому что dapper выдает ошибку:

«При использовании API-интерфейсов множественного отображения убедитесь, что вы задали параметр splitOn, если у вас есть ключи, отличные от Id"

Есть ли способ написать запрос, чтобы он мог корректно обрабатывать случай, когда возвращается пустой результат или это ограничение Dapper?

Популярные ответы

SingleOrDefault() - ваш друг здесь

Попробуй это:

someObject = con.Query<T>("GetInfoSproc", p, commandType: CommandType.StoredProcedure).SingleOrDefault();
if (someObject != null)
{
  // operate on your results here
}
return someObject;

также вам нужно убедиться, что T является Nullable



Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему