Ошибка разбора строки с помощью Dapper

У меня есть следующая таблица, сокращенная:

CREATE TABLE [dbo].[TERMINAL] (
    [TERM_CODEID]    SMALLINT     NOT NULL,
    [TERM_ACTIVE]    SMALLINT     NOT NULL,
    [TERM_NAME]      VARCHAR (30) NOT NULL,
    [TERM_SLA]       CHAR (8)     NOT NULL,
    [TERM_SERIAL]    VARCHAR (8)  NULL,
    [TERM_VERSION]   VARCHAR (8)  NULL,

    [TERM_STATUS]    INT          NULL,
)

Когда я пробую следующий код Dapper - и я начинающий Dapper, нашел его вчера - я получаю сообщение об ошибке:

using (var conn = new SqlConnection("data source=ourServer; initial catalog=ourDb;user id=sa;password=ourPassword;"))
{
    conn.Open();
    var terms = conn.Query<Terminal>("select * from TERMINAL");
}

Ошибка:

Ошибка при разборе столбца 3 (TERM_SLA=01010B01 - String)

Я не вижу причин, по которым что-либо должно даже "анализировать" строку, не говоря уже о том, чтобы при этом допустить ошибку. Что может быть причиной этого>

3 ответа

Решение

Dapper ожидает .NET Тип данных должен быть точно таким же, как в вашей базе данных. Term_Sla должен быть типа String,

Вот мой опыт. Я надеюсь, что это может помочь кому-то:

У меня была та же ошибка, и тип.net соответствовал типу данных Sql; за исключением того, что некоторые данные были нулевыми. Поэтому убедитесь, что ваши sql-данные не обнуляются, иначе соответствующим образом измените тип вашего свойства.net.

В моем случае было поле перечисления, и его не было в записях SQL.

Другие вопросы по тегам