У меня есть этот класс
public class User
{
public int UserId { get; set; }
public string UserName { get; set; }
public bool IsValidated { get; set; }
}
, и я заполняю его этим SQL, используя Dapper:
var users = connection.Query("SELECT userId, userName, TRUE `IsValidated` FROM user WHERE [...]").ToList();
, когда я запускаю это, я получаю эту ошибку:
Ошибка разборки столбца 2 (ISVALIDALIDATED = 1 - INT64)
Я выходил через код DAPPER, и SQLDAReader говорит, что этот столбец INT64
, так что это выглядит как разъем .NET MySQL Это «правда» (который должен быть Tinyint в MySQL) - это INT64
.
Я нашел Этот отчет об ошибках , который сказал, что для всех версий int (int, bigint, tinyint, smallint, inimintit) разъем .net возвращается int64. Однако это была ошибка в MySQL 5.0 и была исправлена, я использую 5,5. У меня есть mysql.data версии 6.4.3.0
У меня есть «решена» эту проблему, выбрав все это во временную таблицу с помощью колонки
, объявленном как bool
, но Это паршивое решение.