gpt4 book ai didi

c# - 当 Entity Framework 中的值为空时转换为默认值

转载 作者:行者123 更新时间:2023-12-04 08:53:29 25 4
gpt4 key购买 nike

我有以下 Entity Framework 查询,该查询具有 DateTime名为 by 的列并且是从MySQL获取的,但有时是NULL , 我收到一个错误

The specified conversion is invalid.


我知道它已经解决了把我的模型变成
public by? { get; set; }
但我不想让它为空,我想知道是否有诸如 [DefaultValue ()] 之类的属性,表示如果获取到空值,则转换为默认值,即 DateTime.MinValue插入以便不转换可为空的日期时间
var Context = new Context();

var docs = Context.Docs.AsNoTracking()
.Where(d => d.froms == "active")
.FirstOrDefault();

最佳答案

答案是否定的:检查可用的数据注释 here .它用于核心,但也包含所有 EF 6 属性。
EF 似乎强调不允许你这样做,即使是值(value)转换:https://docs.microsoft.com/en-us/ef/core/modeling/value-conversions

A null value will never be passed to a value converter. This makes the implementation of conversions easier and allows them to be shared amongst nullable and non-nullable properties.


这是有道理的,因为您正在有效地尝试绕过您自己添加到项目中的配置。
如果您的数据库中有空值是有意义的,那么您的代码也应该有它们。
在任何其他(非空)情况下

Value converters allow property values to be converted when reading from or writing to the database.

关于c# - 当 Entity Framework 中的值为空时转换为默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63974933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com