【发布时间】:2012-03-12 10:26:16
【问题描述】:
我无法通过 DateTime 属性查询任何对象。
public class MyModel
{
public int Id { get; set; }
public DateTime TimeStamp { get; set; }
}
[ServiceContract]
public class BuildJobApi
{
[WebGet]
public IQueryable<MyModel> GetMyModels()
{
return _service.GetMyModels(); // IQueryable<MyModel>
}
}
我尝试使用 WCF WebApi v0.5.0 和 0.6.0,两者都抛出错误消息。
这是生成的 URL(由 WebApi)按 Id 查询(有效):
/api/models?$filter=(Id eq 100)
这是 TimeStamp 生成的用于查询的 URL(不起作用):
/api/models?$filter=TimeStamp ge DateTime'2012-02-22T00:00:00'
我也可以按日期部分查询(作品):
/api/models?$filter=(year(ExceptionDateTime) eq 2012)
确切的错误消息是 500/Internal Server Error。与消息:
The server encountered an error processing the request. See server logs for more details.
问:有什么方法可以在不单独查询每个部分的情况下查询 DateTime 属性?
【问题讨论】:
-
MyModel是否标记为 DataContract,DateTime 属性是 TimeStamp 是否正确? -
它没有被标记为 DataContract。 TimeStamp 是属性的名称(用于本演示),DateTime 是类型。
-
它应该是一个DataContract。至于时间戳 - 当然:)。
-
我将 [DataContract] 添加到类,并将 [DataMember] 添加到每个属性。我仍然遇到同样的异常。
-
更新了服务参考? 查看服务器日志了解更多详情:这是否提供了线索?
标签: c# linq web-services iqueryable wcf-web-api