2010-09-01 78 views
8

有誰知道是否有一個開源的.NET包裝,可以可靠地解析OData protocol Uri是否有一個OData協議的.NET類包裝Uri

我不在尋找指向WCF數據服務的指針......我正在創建一個基於WCF的數據查詢服務(出於複雜的原因)不能成爲真正的Atom/OData服務,但我真的很喜歡錶達性OData Uri用於標識數據源和查詢參數。此外,我們可能會在未來某個時間公開OData端點。

我已經通過WCF數據服務API查看(cursorally),似乎沒有公開的包裝ODataUri類公開服務主機,資源路徑和查詢參數。我可以寫一篇,但在我做之前,我寧願看看是否有人已經做到了。

+1

我也會對此感興趣,您是否設法找到/創建包裝?你能分享你的發現嗎? – Alex 2011-02-17 19:32:25

+0

當然,閱讀這篇博客文章作爲首發:http://tirania.org/blog/archive/2010/Mar-22.html – 2010-09-01 20:36:45

+0

因此,除非我錯過了一些東西,本文討論MS需要開放性,源數據服務服務器代碼(我需要的東西!)。我同意這種觀點,但它並不能幫助我,因爲MS沒有操作服務器代碼,所以我無法得到他們的URI解析器(我想我可以嘗試反射器,但這可能會很多麻煩)。 – 2010-09-01 22:10:00

回答

6

我知道你說過你看過API,但是你看過實際的代碼。 .Net客戶端庫已經開源,http://odata.codeplex.com/,所以如果你在那裏找不到一個,你可以使用他們的代碼作爲起點(並希望將其貢獻回社區)。

本質上,你需要的是一個LINQ到OData Uri提供者。如果我沒有記錯的話,Astoria的一個nick-name是LINQ to REST。您需要做的是在客戶端,將LINQ表達式樹轉換爲OData URI格式,然後在服務器上將URI轉換回LINQ表達式樹。創建自定義LINQ提供程序並不是最簡單的事情,但馬特華倫有一個偉大(長)系列構建IQueryable提供商http://blogs.msdn.com/b/mattwar/archive/2008/11/18/linq-links.aspx

+0

這就是很多*完全*我想要做的事情。我會看看這個。 – 2010-09-02 16:12:39