如何通过WCF数据服务公开TimeSpan?

时间:2011-04-07 20:46:17

标签: .net entity-framework wcf wcf-data-services

我正在为约会数据库创建一个WCF数据服务。

我将约会存储为DateTime,其持续时间为TimeSpan。当我尝试访问我的数据服务时,出现以下错误:

  

“服务器在处理请求时遇到错误。异常消息是'预约'类型的属性'持续时间'是'时间'类型,它不是受支持的基本类型。'。有关详细信息,请参阅服务器日志。“

知道如何表示持续时间并通过我的WCF数据服务访问它吗?

2 个答案:

答案 0 :(得分:6)

我建议使用原始时间范围的DataMemberAttribute属性公开序列化的新属性(标有Ticks)。

例如:

[DataMember("TheTimeSpanTicks")]
public long TheTimeSpanTicks
{
    get { return TheTimeSpan.Ticks; }
    set { TheTimeSpan = new TimeSpan(value); }
} 

我不确定序列化的访问者要求是什么。也许您可以使用protected代替public

答案 1 :(得分:0)

您可以将持续时间公开为Ticks,TotalSeconds或其他可以计算为小时,分钟等的原语吗?