0

我正在使用 ServiceStack + OrmLite,我在 OrmLite 保存 DateTimeOffset 对象时遇到了一些问题。

我需要将其保存到具有中性文化格式(例如 ISO8601)的 SQL Server 数据库中,因此当用户更改其文化时,它不会对它写入数据库的方式产生任何影响,因为现在Conversion failed when converting date and/or time from character string.由于文化转换而产生错误问题。

是否有任何 OrmLite 配置选项或类似的东西来避免这个问题?

4

1 回答 1

0

SQL Server 中的日期/时间类型,包括datetimedatetimeoffset不与任何文化一起存储。它们根本不存储为字符串。它们以二进制表示形式在内部存储。

如果 C# 中的类使用具有DateTimeOffset类型的属性,而 SQL Server 中的表使用具有datetimeoffset类型的列,则字符串(和区域性)永远不应出现在图片中。

如果您手动制作 SQL 字符串并内联您的值而不是使用参数,您可能会得到字符串。但我怀疑 ORM 会犯这个错误。

或者您是否试图将 a 的字符串表示形式填充DateTimeOffsetvarchar字段中?

发布一些代码,以便我们可以看到您在做什么。

于 2013-08-26T19:52:53.833 回答