Проблема получения нулевого значения в Nullable Bool со значением по умолчанию через dapper [contrib] - PullRequest
0 голосов
/ 11 декабря 2018

Это может быть немного крайним случаем, и, возможно, я ошибаюсь в своем понимании того, как значения по умолчанию работают в этом случае.

У меня проблема, когда свойство ниже всегда возвращается как true , даже если оно равно null в БД.Я думаю, это из-за значения по умолчанию, но значения по умолчанию не должны переопределять то, что находится в БД - или я так думал.

Часть модели ..

public bool? SolvedByCalldesk { get; set; } = true;

Часть Dapper.Contrib-call ..

...
var returnTask = connection.GetAsync<T>(id);
//caching here
result = await returnTask;
...

Я проверил, что рассматриваемая DB-запись null , но «result» возвращает ее как true .Это проблема со мной, дэппер или просто как он работает со значениями по умолчанию для типов, допускающих обнуляемость?

1 Ответ

0 голосов
/ 28 января 2019

Я получил ответ на этот вопрос на Dappers github :

Он действительно ведет себя как задумано.Вместо этого вы можете использовать конструкторский подход, если хотите переопределить поведение (просто есть конструктор, который соответствует столбцам, которые вы извлекаете), если вам нужен полный контроль здесь:)

Так что любой null в базе данных будет использовать значение по умолчанию в модели, а не значение базы данных (даже если запись существует и null является допустимым значением для свойства / поля).

Имеет смысл, почему он так обрабатывается, но в то же время это не совсем правильно, imo

...