【问题标题】:Is it possible to expose data from Oracle using OData?是否可以使用 OData 从 Oracle 公开数据?
【发布时间】:2010-06-17 16:43:50
【问题描述】:

根据我的个人研究,OData 实现似乎广泛依赖于 MS Entity 框架。使用开放的 ORM(如 C# 中的 NHibernate 或 Java 中的 Hibernate)来实现 OData 生产者协议似乎是可能的。

在最好的情况下,使用 Oracle 的 OData 协议公开数据会很酷。我对 Java、JRuby 等其他开放解决方案持开放态度。

提前感谢您的宝贵时间。

【问题讨论】:

  • " OData 实现似乎广泛依赖于 MS Entity 框架"。鉴于 OData 的出处,这不足为奇。

标签: oracle odata


【解决方案1】:

这里有教程:WCF Data Services and OData for Oracle Database.

关于先决条件的第 5 步有一个下载文件的链接。

【讨论】:

    【解决方案2】:

    实际上 Entity Framework 只是提供者之一(尽管最容易开始)。你绝对可以使用 NHibernate,我见过很多人这样做。仍然有一些黑暗的角落,但在大多数情况下,这工作得很好。 您还可以编写自己的提供程序(尽管这需要大量工作),为此请参阅位于http://www.odata.org/developers/odata-sdk 的 OData 提供程序工具包。 上周 Oracle 还宣布他们将发布官方的 Oracle 实体框架提供程序,因此您可以使用 EF 作为 OData 提供程序。

    【讨论】:

      【解决方案3】:

      Entity Framework 只是公开 OData 的一种解决方案。此解决方案的优点是它是最简单的解决方案。
      好消息是 Entity Framework 可以与 Oracle 一起使用。正如 Vitek Karas 所写,甲骨文将在年底之前支持实体框架。但您不必等待。存在其他提供者。例如,参见 Devart 和 Data Direct 的产品。

      【讨论】:

        【解决方案4】:

        尝试使用面向基于 POCO 的 OData 的“反射提供程序”。很容易将它映射到任何支持 LINQ 的 ORM - 对于这一步,我假设您可以将 DbLinq 用于您的 LINQ-to-Oracle 层。

        本文举个例子:

        http://blogs.msdn.com/b/alexj/archive/2010/06/11/tip-56-writing-an-odata-service-using-the-reflection-provider.aspx

        在我自己的发现中,我什至没有使用属性标记,尽管这样做似乎很有帮助。

        正如在其他地方提到的,您也可以编写一个完整的自定义提供程序,但鉴于反射提供程序的存在,这似乎是不必要的工作。希望对您有所帮助!

        【讨论】:

        • ODataConventionModelBuilder 是另一个可以提供很大帮助的东西。最大的帮助可能是示例和源代码 - 在github.com/OData 下查找 odata.net、WebApi、RESTier 和 ODataSamples。 OData 技术委员会页面oasis-open.org/committees/tc_home.php?wg_abbrev=odata 也很有帮助。 ApplyQuery 可以为您完成一些工作 - 而 ignoreQueryOptions 可以防止它重做您已经完成的事情。最后,OData 是一头巨大的野兽——如果你自己动手,它很可能是一个小(或中等)子集。
        猜你喜欢
        • 2011-02-28
        • 2017-10-13
        • 1970-01-01
        • 1970-01-01
        • 2019-07-23
        • 1970-01-01
        • 2011-10-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多