0
有什麼方法可以確保將特定屬性或操作符添加到OData表達式樹中,即使它們未在URL中指定?例如,我想在每次執行搜索時添加一些日期時間約束,即使用戶沒有在URL中指定它。在Filter子句OData中爲實體設置默認值.NET
最近我有做要求不變的情況下一個問題,我通過遍歷的OData表達式樹和添加新的功能調用到它這似乎有點矯枉過正,我還沒有發現任何東西,因爲那麼好解決了這個問題。我正在使用OData 6.10。
有什麼方法可以確保將特定屬性或操作符添加到OData表達式樹中,即使它們未在URL中指定?例如,我想在每次執行搜索時添加一些日期時間約束,即使用戶沒有在URL中指定它。在Filter子句OData中爲實體設置默認值.NET
最近我有做要求不變的情況下一個問題,我通過遍歷的OData表達式樹和添加新的功能調用到它這似乎有點矯枉過正,我還沒有發現任何東西,因爲那麼好解決了這個問題。我正在使用OData 6.10。
如果要基於用戶請求應用某個固定查詢子句,可以使用AND二元運算符構建新的查詢表達式來組合您的固定子句和用戶子句。
例如,添加限制查詢產品RELEASEDATE於2013年更新,你可以做到以下幾點:
// Fixed clause
var parser = new ODataUriParser(model, new Uri("Products?$filter=ReleaseDate ge 2013-01-01T00:00:00Z", UriKind.Relative));
var fixedExp = parser.ParseFilter().Expression;
// User clause
parser = new ODataUriParser(model, new Uri("Products?$filter=Rating eq 1", UriKind.Relative));
var userExp = parser.ParseFilter().Expression;
var newExp = new BinaryOperatorNode(BinaryOperatorKind.And, fixedExp, userExp);
那麼,這簡化了新的查詢的創建,但有什麼辦法來確定用戶除了遍歷表達式樹之外,還創建了一個特定的查詢,如'filter = Rating eq 1'? – Welp