gpt4 book ai didi

c# - EF : Is it OK to use default value for the created date property?

转载 作者:太空宇宙 更新时间:2023-11-03 21:07:16 25 4
gpt4 key购买 nike

每当插入新行时,我想将 CreatedDate 列设置为当前日期时间,所以我这样做了:

public DateTime CreateDate { get; set; } = DateTime.Now;

我测试了它,它工作得很好,这是一种实用的方法吗?我看到很多文章用这么多代码和使用流畅的 API 实现了同样的效果,没有人提到这种简单的方法?

最佳答案

这取决于你想要完成什么。

I saw many articles achieve the same with so much code and using fluent API,

这些文章中的大部分都是关于在数据库级别添加默认值的。你没有那样做。如果您使用纯 SQL 向表中插入一行,并且没有为 CreatedDate 指定值,您将收到错误消息。

对于您正在做的事情,插入时始终需要在 SQL 中指定 CreatedDate。但 Entity Framework 在插入时始终在 SQL 中指定它,并完全忽略在数据库级别设置的任何默认值。

因此,如果这就是您想要的——默认值仅在通过 C# 创建对象时应用——那么您所做的就完全没问题。它也可以写成从类的构造函数内部设置值。

@Alex Kozlowski 提出了一个很好的评论,即 DateTime.Now 可能不是您期望插入的值。这取决于哪个系统正在运行代码。时区可能与您的服务器不同,或者时钟可能不同步。

关于c# - EF : Is it OK to use default value for the created date property?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40411627/

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