0

我正在爲我的公司使用實體框架(EF)製作OData(WCF數據服務)端點。如果我想要OData + EF +我自己的合同,是否需要創建自定義數據提供者?

我們已經認識到標準的OData + EF將我們與數據庫過於緊密地聯繫起來] 1。所以我打算在EF和OData之間添加另一個層。

所以我的問題是:我需要做一個Custom Data Service Provider或者有沒有辦法將OData Reflection Provider連接到EF?我已閱讀了有關Reflection Provider的內容,它似乎只適用於內存中的內容。我不知道如何連接到EF加載數據的方式。

注意:我的OData服務是隻讀的。我不需要它們是可更新的。

回答

0

據我瞭解您的問題反射提供商應該滿足您的所有要求。你只需要創建一些類,它將暴露你的自定義對象的屬性IQueryable<>。反射提供者不能僅僅使用內存的東西 - 它只需要一個類來反射探索,但該類的實現取決於你。 Linq-to-Sql上下文也通過反射提供者公開,它們絕對不僅僅是內存中的東西。

您將遇到的問題是將查詢轉換爲您的自定義對象,因爲這些查詢無法在本機上進行翻譯,因此無法查詢您的實體。

相關問題