私の個人的な調査によると、ODataの実装はMSEntityFrameworkに大きく依存しているようです。C#のNHibernateやJavaのHibernateなどのオープンORMを使用してODataプロデューサープロトコルを実装することは可能と思われます。
すべての世界で最も優れているのは、OracleのODataプロトコルを使用してデータを公開することです。私はJava、JRubyなどの他のオープンソリューションを受け入れています。
よろしくお願いします。
ここにチュートリアルがあります: WCF Data Services and OData for Oracle Database.
前提条件のステップ 5 には、ファイルをダウンロードするためのリンクがあります。
実際、Entity Framework はプロバイダーの 1 つにすぎません (ただし、最も簡単に始めることができます)。間違いなく NHibernate を使用できます。私は多くの人がそうしているのを見てきました。まだいくつかの暗いコーナーがありますが、ほとんどの場合、これで問題なく機能します。また、独自のプロバイダーを作成することもできます (ただし、これには多くの作業が必要です)。これについては、http://www.odata.org/developers/odata-sdk の OData Provider Toolkist を参照してください。先週、Oracle は、Entity Framework 用の公式の Oracle プロバイダーをリリースすることも発表しました。これを使用すると、EF を OData プロバイダーとして使用できます。
POCO ベースの OData 向けの「Reflection Provider」を使用してみてください。これを LINQ 対応の ORM にマップするのは簡単です。そのステップでは、LINQ-to-Oracle レイヤーに DbLinq を使用できると思います。
この記事では例を示します。
私自身の発見では、属性マークアップさえ使用していませんでしたが、使用すると役立つようです。
他の場所でほのめかされているように、完全なカスタム プロバイダーを作成することもできますが、リフレクション プロバイダーの存在を考えると、それは不必要な作業のように思えます。それが役に立てば幸い!
Entity Framework は、OData を公開するための 1 つのソリューションにすぎません。このソリューションの利点は、最も簡単なことです。
幸いなことに、Entity Framework は Oracle と連携します。Vitek Karas が書いたように、Oracle は年末までに Entity Framework をサポートする予定です。しかし、待つ必要はありません。他のプロバイダーが存在します。たとえば、Devart や Data Direct の製品をご覧ください。