2017-05-08 47 views
0

我當前正在使用JSON/BSON訪問提供分層對象(複雜交易)的Web API端點。對象從作爲標準規範化數據存儲在SQL Server數據庫中的實體框架對象中轉換而來。這一切運作良好。將對象過濾器發送到web api

但是,隨着這些對象的數量的增長,在過濾掉客戶端所需的那些對象之前,通過連線對它們進行串行化/反串行化變得越來越低效。擁有所有對象或逐個對象的方法都很好,但通常有更復雜的過濾標準,這需要無數不同的方法簽名才能完全捕獲。在理想的世界中,可以將Func<Deal,bool>發送到Deals端點,並且這將提供客戶端的過濾機制以在服務器端實現。前提是不同的用戶會根據不同的方面對交易感興趣。

這可能是瘋了,但有沒有什麼辦法可以實現沿着這些方向?

回答

0

我這樣做是通過將「SearchCriteria」對象傳遞給搜索端點,然後根據各種條件屬性中設置的值在服務器上執行過濾。但是,我們確實有一個相當明確的標準列表,並且執行過濾並不算太壞。

另外,我沒有使用OData,但從我的理解,這可能是你在找什麼。如果我再想這個,我會調查這一點。

https://docs.microsoft.com/en-us/aspnet/web-api/overview/odata-support-in-aspnet-web-api/odata-v4/create-an-odata-v4-endpoint