Может ли Dapper обрабатывать нулевые значения при возврате? - PullRequest
0 голосов
/ 09 мая 2018

Я вызываю расширенную функцию Dapper Query для класса IDbConnection. Проблема в том, что некоторые значения, которые он возвращает, NULL в базе данных. Он продолжает жаловаться на них, поэтому я конвертировал членов моего возвращаемого класса в обнуляемые типы. Но я думаю, что в конечном итоге я могу сделать это почти для каждого участника, потому что данные часто неполные. Это изменяется по сравнению со старым кодом, который использует класс DataRow и может назначать из него пустые значения для string членов моего возвращаемого класса без каких-либо проблем, используя только ToString.

public class ProductInfo
{
    public Char Department { get; set; }
}

Это работает:

ProductInfo myProduct = new ProductInfo{};
myProduct.Department = dataRow["department"].ToString();

dataRow["department"] отображается как {}, а myProduct.Department отображается как "".

Это дает исключение:

List<ProductInfo> myProduct = new List<ProductInfo>();
myProduct = dbConnection.Query<ProductInfo>(command, parameters).ToList();

С ошибкой: Error parsing column 1 (department=<null>) Details: System.ArgumentNullException: Value cannot be null

Я пропустил шаг в процессе, который Dapper использует для присвоения значений? Или с ним широко применяется стандартная практика типов nullable?

1 Ответ

0 голосов
/ 09 мая 2018

Это не ограничение с Dapper; так настроена ваша модель.

Тип char не может иметь значение null.

Измените свою модель на char?, чтобы сделать ее обнуляемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...