[英]Mapping the value of the time field in LINQ to OData query
最近,我一直在使用OData .Net Client。 我正在使用DataServiceContext類作為客戶端。 為了獲取數據,我使用LINQ to OData查詢。 問題是當LINQ映射時間類型(不是日期時間,而是時間)字段f.ex的值時。 DocTime字段:
LINQ查詢:
IQueryable<Document> query = CurrentServiceContainer.Orders.Where(e => e.DocTime >= new DateTime(2017, 1, 1, 12, 0, 0));
映射到以下OData查詢:
"https://$HOST_ADDRESS$/b1s/v1/Orders()?$filter=DocTime ge datetime'2017-01-01T12:00:00'" (query.ToString())
,執行將產生以下結果:
{
"error" : {
"code" : -1000,
"message" : {
"lang" : "en-us",
"value" : "Query string error - the given value('datetime') of property 'DocTime' is of invalid time format"
}
}
}
如您所見,DocTime時間字段的值映射到“ datetime'2017-01-01T12:00:00'
”,這是錯誤的時間格式。
根據此字段的文檔值,應將其映射到“ '2017-01-01T12:00:00'
”(不帶“ datetime”前綴)。 是否有可能以任何方式修改ODataQuery(通過配置,軟件更新或通過操縱URI)以獲得期望的結果而沒有錯誤?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.