PetaPoco - PostgreSQL间隔和.NET时间跨度转换问题

时间:2012-02-29 03:30:27

标签: .net intervals petapoco

我需要帮助解决在PostgreSQL中实现 interval 列时遇到的问题。我正在使用基于.NET的客户端应用程序。

如果像这样创建一个Timespan对象:

TimeSpan startBalance = new TimeSpan(100, 0, 0);  //100 hours

并将此值分配给Poco属性,如下所示:

//the poco property was generated as a string - not a Timespan - not sure why
Poco.Property = startBalance.ToString()

PetaPoco插入在PostgreSQL数据库中创建以下间隔值:

“4天00:57:36”

当我尝试检索包含我之前保存的间隔的记录时,会生成一个com异常。

有几点需要注意......

数据库文件生成过程(POCO创建)创建了一个字符串属性来表示PostgreSQL间隔列,而不是Timespan属性。 Timespan等于100小时(4天和4小时)插入为4天57分36秒。检索失败并显示此错误“对象必须实现IConvertible”。如果我将interval字段更新为NULL,则检索工作。看来数据类型映射中的某些内容并不完全正确。我对此的理解是PostgreSQL间隔映射到NpgsqlDbType间隔,这应该映射到.NET TimeSpan。也许问题是PetaPoco将数据类型视为字符串,不确定。需要一个大师。 ; - )

0 个答案:

没有答案