我真的需要能夠在WCF數據服務查詢上執行'DISTINCT'。我可以使用WCF數據服務(OData)查詢執行「區分」嗎?
從我可以告訴,這樣的功能不存在。我知道我可以在客戶端的Linq查詢中使用Distinct擴展方法,但它仍然會保存完整的結果集(在這種情況下,這不是我想要的)。
任何想法?
我真的需要能夠在WCF數據服務查詢上執行'DISTINCT'。我可以使用WCF數據服務(OData)查詢執行「區分」嗎?
從我可以告訴,這樣的功能不存在。我知道我可以在客戶端的Linq查詢中使用Distinct擴展方法,但它仍然會保存完整的結果集(在這種情況下,這不是我想要的)。
任何想法?
不是內置的。它目前也不是OData協議的一部分(沒有聚合除了計數,我們我們肯定需要考慮它)。推薦的方法是檢索所有數據並對客戶端進行設置操作(yuck!)。這就是說,你必須以某種方式在客戶端和服務器上擴展WCF數據服務,以提供這種功能(我不太熟悉它可以指向正確的鉤子)。
你可以隨時提供一個WebMethod
(這只是WCF的順便)來完成這項工作,但我會想象那不是你打算如何使用數據服務。
我建議使用WCF數據服務,服務操作 - http://msdn.microsoft.com/en-us/library/cc668788.aspx作爲更好的解決方案(通過web方法)。服務操作是封裝不受OData查詢語法啓用的查詢功能的好方法。