【发布时间】:2014-01-31 06:53:48
【问题描述】:
我刚刚开始使用 NPoco,但到目前为止我还没有在文档中找到我需要的内容。
例如,假设我有一个字段Created,它在我的域中是一个Instant,但在我的数据库中将DateTimeOffset 设置为UTC。有没有办法让 NPoco 转换这些类型?
【问题讨论】:
-
不熟悉 NPoco,但您走在正确的轨道上。在大多数情况下,ORM 和 DocDB 需要自定义指令才能使用 NodaTime 类型。我已经使用 JSON.net 为 RavenDB 完成了这项工作,并且正在为实体框架开发解决方案。但是您需要了解您的特定 ORM 如何将类型映射到底层 ADO.Net 参数/从底层 ADO.Net 参数映射类型。最终你需要
Instant.ToDateTimeOffset()和Instant.FromDateTimeOffset()。此外,对于Instant,如果您愿意,也可以使用 UTCDateTime。 -
快速浏览了一下,我看到 PetaPoco 提到了在他们的main list of features 上安装“值转换器”的能力。你应该进一步探索。我没有看到 NPoco 有类似的东西,所以我猜你必须修改他们的源代码。祝你好运!
-
我在this answer 中看到了一个创建值转换器的示例。您可能可以将其调整为使用 NodaTime
Instant而不是为其编写的类型。 -
@MattJohnson 感谢您的链接,我只需要花时间弄清楚 IMapper 界面。