EF CodeFirst:Rails 样式创建和修改的列

发布于 2024-12-25 17:38:06 字数 183 浏览 1 评论 0原文

使用实体框架 CodeFirst,如何创建一个已创建的日期时间列,每次为该表插入一条记录时,该列都会填充当前时间戳,以及一个修改后的日期时间列,该列每次​​更新行时都会生成时间戳? Rails 默认情况下会执行此操作,我希望 EF 生成的数据库也有此操作,但事实并非如此。这是可以通过数据注释来完成的事情吗?如果是这样,怎么办?

谢谢!

Using Entity Framework CodeFirst, how do I create a created datetime column that gets populated with the current timestamp everytime a record is inserted for that table, and a modified datetime column that has a timestamp generated evertime a row is updated? Rails does this by default and I was hoping the EF generated database would have this as well, but it doesn't. Is this something that can be done with data annotations? If so, how?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

淑女气质 2025-01-01 17:38:06

EF 不支持它。 EF 不会自动为您创建这些列。您必须自行执行以下操作之一:

  • 在要维护这些值的每个实体中拥有 CreatedModified 属性。您还必须在应用程序中手动维护这些列 (常见方法是覆盖SaveChanges并相应地设置值)。
  • 如果您不需要映射这些值(您永远不会期望在应用程序中使用它们,并且您对数据库中的逻辑感到满意),您可以创建 自定义数据库初始值设定项,它将执行自定义 SQL 来更改表并添加这些列,Created 的默认约束列以及Modified 列的更新触发器。

It is not supported in EF. EF will not create these columns for you automatically. You must do it yourselves by either:

  • Have Created and Modified properties in every entity where you want to maintain these values. You must also manually maintain these columns in your application (common approach is overriding SaveChanges and set values accordingly).
  • If you don't need these values mapped (you never expect to use them in your application and you are happy with the logic in the database) you can create custom database initializer which would execute your custom SQL to alter tables and add those columns, default constraints for Created columns and update triggers for Modified columns.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文