1

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

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

部分模型..

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

Dapper.Contrib 调用的一部分..

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

我已经验证了有问题的数据库记录是null,但是“结果”将它返回为true。这是我的问题,dapper 还是它如何与可空类型的默认值一起工作?

4

1 回答 1

0

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

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

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

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

于 2019-01-28T08:48:54.190 回答