我无法通过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,两者都抛出错误消息。
这是由Id(作品)生成(通过WebApi)生成的URL:
/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 /内部服务器错误。随着消息:
The server encountered an error processing the request. See server logs for more details.
问:在没有单独查询每个部分的情况下,有什么方法可以查询DateTime属性吗?
答案 0 :(得分:2)
尽量避免序列化DateTime
,为此使用字符串。
例如:
public class MyModel
{
public int Id { get; set; }
public string TimeStamp { get; set; }
}
new MyModel { Id = 123, TimeStamp = DateTime.Now.ToString("o") };
"o"
适用于ISO 8601格式(文化不变,格式稳定)。