似乎这个新版本没有正确处理日期。请参阅以下观察:
1)使用以下内容时:
_conn.Create<MyTable>();
我在 MyTable 类中有一个 DateTime 字段,然后,它在SQLite DB中创建为 BIGINT 列。
2)如果我将 BIGINT 列更改为日期时间,以匹配 MyTable 中的日期时间定义class - 任何现有行都以 01/01/0001 的形式回读!
3)如果我尝试将日期值保存到该日期时间字段中,例如,将其设置为 DateTime.Today ,则将其保存为 30-12-1899 。并且您尝试保存的价值无关紧要。它始终保存为 30-12-1899 。
注意:我在Android上使用MVVMCross。
T.I.A。
答案 0 :(得分:3)
SQLite-net
代码中有一个关于如何存储DateTime的长篇故事。
您可以阅读更多相关信息,并在https://github.com/MvvmCross/MvvmCross/issues/213
上找到大量意见和链接作为讨论的结果,新的SQLite端口使用StoreDateTimeAsTicks
作为默认设置。
鉴于上述github问题线程中人们的意见权重,我建议使用StoreDateTimeAsTicks
设置。如果存在错误(正如您在3中所建议的那样),那么我建议您通过SQLite-net社区来完成此操作 - 包括有关您正在使用的平台和版本的详细信息。
如果您想更改此设置,则可以传入:
options.StoreDateTimeAsTicks = false
到SQLite工厂。