gpt4 book ai didi

entity-framework - 在 POCO 实体上保存 DateTime.MinValue 时出现 SqlDateTime 溢出错误

转载 作者:行者123 更新时间:2023-12-04 10:30:16 24 4
gpt4 key购买 nike

在使用 DateTime 属性保存 POCO 实体时,我遇到了一些问题。当 DateTime 属性的值为 DateTime.MinValue 时,由于 SqlDateTime.MinValue 和 DateTime.MinValue 之间的差异,SaveChanges() 将失败。

那么该怎么办?

1) 我应该在保存实体之前检查 DateTime.MinValue 吗?

2)我应该让我的日期时间 POCO 属性设计成这样吗?

    private SqlDateTime _created;
public virtual DateTime Created
{
get
{
return _created.Value;
}
set
{
_created = value == DateTime.MinValue ? SqlDateTime.MinValue : value;
}
}

/密码

最佳答案

如果可能,我建议将数据库字段设为可空并将值设置为空而不是最小值。

或者,我会像这样设计属性:

private SqlDateTime? _created;
public virtual DateTime Created
{
get
{
return (DateTime)(_created ?? SqlDateTime.MinValue);
}
set
{
if (value == null || value < (DateTime)SqlDateTime.MinValue)
{
_created = SqlDateTime.MinValue;
}
else
{
_created = (SqlDateTime)value;
}
}
}

关于entity-framework - 在 POCO 实体上保存 DateTime.MinValue 时出现 SqlDateTime 溢出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5550610/

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