【问题标题】:Problem retreiving null on nullable bool with default value through dapper [contrib]通过 dapper [contrib] 在具有默认值的可空布尔值上检索空值的问题
【发布时间】:2018-12-11 10:01:58
【问题描述】:

这可能是一个边缘情况,也许我对默认值在这种情况下的工作方式的理解是错误的。

我有一个问题,即以下属性始终返回为 true,即使它在数据库中为 null。我猜这是由于默认值,但默认值不应该覆盖数据库中的内容 - 或者我是这么认为的。

模型的一部分..

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

Dapper.Contrib-call 的一部分..

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

我已验证有问题的 DB 记录为 null,但“结果”将其返回为 true。这是我的问题,dapper 还是它如何处理可空类型的默认值?

【问题讨论】:

    标签: c# dapper dapper-contrib


    【解决方案1】:

    我在Dappers github收到了对此问题的回复:

    它确实按预期运行。您可以使用构造函数方法 相反,如果你想覆盖行为(只要有一个构造函数 与您要拉回的列相匹配)如果您想完成 控制在这里:)

    所以数据库中的任何 null 都将使用模型中的默认值,而不是数据库值(即使存在记录并且 null 是属性/字段)。

    为什么会这样处理是有道理的,但同时它也不完全正确。

    【讨论】:

      猜你喜欢
      • 2013-05-09
      • 1970-01-01
      • 2013-07-01
      • 1970-01-01
      • 2011-03-21
      • 2017-06-17
      • 2018-10-14
      • 2018-08-28
      • 2013-08-29
      相关资源
      最近更新 更多