【问题标题】:EF Core - Scaffolding to NodaTime types?EF Core - NodaTime 类型的脚手架?
【发布时间】:2021-06-14 18:21:22
【问题描述】:

我想知道,EntityFramework 6 和 EFCore 3.1 中是否有任何方法可以自定义脚手架,例如SQLServer date 将变为 NodaTime.LocalDate 并且 SQLServer datetime(或 datetime2)将转换为 NodaTime.Instant

如果是这样 - 任何人都可以给我一个例子吗?

我在这里找到了类似的东西:Entity Framework Core - Customise Scaffolding,但我找不到任何与类型相关的代码编写的特定内容。

【问题讨论】:

  • 我不知道答案,但您认为这可能与使用 OnModelCreating 并为您的 DateTime 属性实现 property.SetValueConverter() 有关吗?
  • @NateW 一般来说 - 我对脚手架定制的可能性一无所知,除了我发现的这样的事情:stackoverflow.com/questions/37679367/…blog.tonysneed.com/2018/05/27/… 我想得到任何时候我需要脚手架的可能性模型(即模型已更改)我将始终获得相同的数据类型。如果我理解正确(也许不是) - 对 OnModelCreating 的更改可能不会是“恒定的”。
  • 我无法理解您的问题的根本缺陷是我以前从未遇到过 NodaTime。但是,是的,我认为你是对的。我的建议是将数据库中的数据解释为 pocos,而您的问题是为 pocos 的创建搭建脚手架。所以,这可能不是正确的解决方案。
  • @NateW 通常-我尝试将 DateTime 替换为适当的 NodaTime 等效项(LocalDateInstant,具体取决于 SQLServer 类型)并且效果很好(除了为 EF 声明 NodaTime 类型的问题OData),但由于项目类型非常多,我希望有一种自动方法来确保它始终符合我的要求。
  • 啊,我明白了。比使用 DateTime 搭建类然后使用查找和替换工具更好的方法...

标签: c# sql-server entity-framework-6 ef-core-3.1 nodatime


【解决方案1】:

【讨论】:

  • 谢谢,只是为了确保 - 这个包也适用于代码生成/脚手架?
  • 再想一想——看来无论如何我对 Noda 有第二个问题,这可能会让我无法使用它:github.com/OData/WebApi/issues/1626
  • 不确定脚手架。试试看,请告诉我们。但是,是的 - OData 问题似乎有问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-18
  • 1970-01-01
相关资源
最近更新 更多