通过dapper [contrib]

时间:2018-12-11 10:01:58

标签: c# dapper dapper-contrib

这可能是一个极端的情况,也许我对默认值在这种情况下如何工作的理解是错误的。

我有一个问题,即使在数据库中,以下属性始终以 true 的形式返回以下属性:我猜这是由于默认值引起的,但是默认值不应覆盖db中的内容-或如此,我认为。

模型的一部分。

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

Dapper.Contrib通话的一部分。

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

我已经验证有关的DB记录为 null ,但是“结果”将其返回为 true 。这是我的问题吗,精巧的人,或者它是如何与可空类型的默认值一起工作的?

1 个答案:

答案 0 :(得分:0)

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

  

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

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

为什么这样处理是很有意义的,但同时我也不完全正确。

相关问题