我正在尝试ormlite。我发现当我插入一个带有DateTime属性的对象时,ormlite会应用-8:00(我的时区为+8)。它应该按字面意思插入时间。就我而言,它已经是UTC了。
然而,从ormlite中读取值时,+ 8不会重新应用。
这是一个已知的错误吗?
感谢
答案 0 :(得分:0)
我认为它是以UTC类型插入的。从数据库中读取DateTime后,尝试应用.ToLocalTime()
答案 1 :(得分:0)
所以你的问题看起来与这个拉取请求有关: https://github.com/kojoru/ServiceStack.OrmLite/commit/d3f63ccd40f945b8dc03fd627ad49a895d4277de
如果您检查SqlServerOrmLiteDialectProvider.cs
中的代码,设置SqlServerOrmLiteDialectProvider.EnsureUtc(true)
似乎可以解决您的问题。
var dialect = new SqlServerOrmLiteDialectProvider();
dialect.EnsureUtc(true);
var factory = new OrmLiteConnectionFactory(cnnStr, dialect);
var connection = factory.Open();
检查EnsureUtcTest.cs
以获取示例。老问题,我知道,但我希望有所帮助。