Как указано в заголовке вопроса, я получаю исключения Specified cast is not valid
, хотя мой сохраненный процесс возвращает int
и DateTime
, а мой класс определяет его одинаково.Dapper бросает недопустимое исключение литья при использовании строго типизированных параметров запроса с использованием Sybase ASE
public class Foo
{
public int Id {get; set;}
public DateTime CreatedDate {get; set;}
}
Когда я выполнить этот запрос:
результаты VAR = connection.Query ("spGetFoo", CommandType: CommandType.StoredProcedure);
я получаю следующие 2 исключения:
InvalidCastException: Specified cast is not valid.
DataException: Error parsing column 1 (Id=1 - Decimal)
InvalidCastException: Specified cast is not valid.
DataException: Error parsing column 2 (CreatedDate=Mar 7 2012 5:52:08:276PM - String)
Если я изменить свойства Foo
«S от int
к decimal
и DateTime
к string
это правильно заполнит значения. Но это вводит дополнительный шаг для определения другого класса, который содержит правильные типы переменных, а затем отображение из Foo
в новый класс.
Я также пробовал пройти через GetTypeDeserializer
в источнике Dapper, чтобы узнать, что происходит, но я не очень хорошо знаком с испусканием ИЛ.
вы уверены, что spGetFoo возвращается как междунар и DateTime? можете ли вы показать SQL и, возможно, определения столбцов? –
Конечно, было бы приятно видеть, что хранимый прокс .... –