2013-08-28 51 views
1

我們有一個自定義(基於.NET/SQL)的DAL,並希望公開OData功能。使用自定義DAL實現OData

在第一個例子中,我們只是想簡單地查詢數據,但後來想要允許更新,我想會有安全問題需要考慮。最終,我們正在查看「應用程序」並使用諸如JayData/Breeze之類的軟件來管理通信。

我們有一組豐富的元數據,它允許我們將計算列附加到我們的數據源,然後可以從我們的DAL中檢索它們,就好像它們是DB列一樣。

我們根本不使用EF。我們如何開始通過OData公開數據?我們大量投資於我們的DAL,它適用於所有基於Windows的應用程序。實現IQueryable聽起來像是一項巨大的任務。我們應該使用WCF服務還是Web API?

這篇文章看起來像一個好的開始,我想我們可以得到ODataQueryOptions並將其重新解釋爲我們的DAL可以使用的東西。

http://blogs.msdn.com/b/webdev/archive/2013/02/25/translating-odata-queries-to-hql.aspx

這裏沒有任何這雖然多文檔,我不願意得到不檢查有沒有我只是錯過了一個已經替代更容易啓動。

+0

您列出的例子是一個很好的起點,我想更多的控制,最後不得不寫我自己的ODataQueryOptions版本來處理事情像$ inlinecount,$過濾器和也$選擇。 –

+0

謝謝。你只是解析原始的OData查詢?你在使用WebAPI嗎?你使用了什麼參考文檔?順便說一句,我認爲WebAPI中OData的最新版本處理$ select和$ filter,你可以在ODataQueryOptions中獲得有用的信息 - 我只是缺乏一個很好的資源,對於MSDN相當缺乏的各種屬性。 – user1894205

+1

你可以看到我在這裏做了什麼 - [MicroLite.Extensions.WebApi](https://github.com/TrevorPilley/MicroLite.Extensions.WebApi)。我基於ASP.NET中的對象名稱和結構,以便我可以在它支持我需要的任何事情時交換回來。我使用了您已經列出的網頁中的細節以及codeplex上的示例NHibernate提供程序來創建我的代碼。 –

回答