2010-06-17 58 views
3

从我个人的研究来看,OData的实现似乎广泛地依赖于MS Entity框架。似乎可以使用开放的ORM来实现OData生成器协议,例如C#中的NHibernate或Java中的Hibernate。是否可以使用OData公开来自Oracle的数据?

在最好的世界中,使用Oracle的OData协议公开数据会很酷。我对其他开放式解决方案如Java,JRuby等开放。

预先感谢您的时间。

+0

“看起来OData实现广泛依赖MS实体框架”。鉴于OData的出处,这并不奇怪。 – APC 2010-06-17 21:31:24

回答

1

实际上,实体框架只是其中一个提供者(尽管最简单的一个)。你绝对可以使用NHibernate,我看到很多人都这样做。仍然有一些黑暗的角落,但大多数情况下,这工作得很好。 您也可以编写自己的提供程序(虽然这很麻烦),因此请参阅OData Provider Toolkist http://www.odata.org/developers/odata-sdk。上周,Oracle还宣布他们将发布一个Oracle实体框架的官方供应商,因此使用该供应商可以使用EF作为OData提供商。

0

实体框架只是暴露OData的一种解决方案。这个解决方案的优点是它是最简单的。
好消息是实体框架与Oracle协同工作。 Vitek Karas写道,甲骨文将在今年年底前支持实体框架。但你不必等。其他提供者存在。例如,请参阅Devart和Data Direct的产品。

0

尝试使用面向基于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

在我自己的调查结果我甚至没有使用属性标记,但它似乎有帮助这样做。

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

相关问题