1

アプリケーションのデータベースレイヤーとしてEntityFrameworkを使用しようとしていますが、Oracleデータベースをサポートしていないことがわかりました。このためには、サードパーティのプロバイダーを使用する必要があります。

ただし、データベースレイヤーを構築して複数のデータベース(Oracle、MS Sql Server)をサポートし、同時にLinqToSqlやdevartなどのエンティティモデルをサポートしたいと考えています。

誰かが私を助けることができる情報を持っているなら、私は感謝します。ありがとう。

4

3 に答える 3

1

ここで必要なのは、おそらくリポジトリ パターンです。これは、アプリケーションが基になるデータがどのように格納されているかを気にしないように、中間に配置できるものです。

私のリポジトリパターンのようなものを使用して(ここでそれについて読んでください:http://blog.staticvoid.co.nz/2011/10/staticvoid-repository-pattern-nuget.html)、Oracle用のカスタム IRepositoryDataSource を実装できます(できますこれを行うには、codeplex の LINQ to oracle プロバイダー ( http://linqtooracle.codeplex.com/ ) を使用するか、SQL と oracle の両方を実装した独自のリポジトリを作成することもできます。

于 2012-02-26T09:19:05.780 に答える
1

Entity Framework には、SQL Server 以外の RDBMS 用のすぐに使えるプロバイダーは含まれていません。EF をサポートしたいサードパーティの RDBMS ベンダーは、Microsoft のプロバイダー モデルに基づいて独自の実装を提供することが期待されています。実際、Oracle は ODP.NET の一部である公式プロバイダーをリリースしました。これは無料なのでお勧めします:

http://www.oracle.com/technetwork/issue-archive/2011/11-sep/o51odt-453447.html

PS - Devart LinqConnect プロバイダーは実際にはLinq to SQL プロバイダーではありません。これらは、Linq to SQL クラス ( 、 など) の構造と機能を模倣するクラスを提供しますDataContextEntitySet<T>、異なる名前空間にあります。Microsoft 以外が Linq to SQL プロバイダーを実装することは不可能です。パブリック型を通じてプロバイダー モデルを公開したことがないからです。

于 2012-03-04T18:16:38.140 に答える
1

(devart) の linqconnect コンポーネントが必要なことを実行することがわかりました。

于 2012-03-04T12:00:04.510 に答える