web-dev-qa-db-ja.com

Entity FrameworkとMongoDb

Entity FrameworkがMongoDbデータベースをサポートすることは可能ですか?誰かがEF MongoDbプロバイダーを作成するでしょうか?

59
Chance

短い答え-いいえ、確かに可能ですが、合理的ではありません。

MongoDBはドキュメントデータベースであり、コレクション間の物理的な関係をサポートしていません。 EFは、SQL、MySQLなどのリレーショナルデータベースに最適です。MongoDBは、埋め込みドキュメントでより高速に動作します。したがって、2つの異なるアプローチにすぎません。

52
Andrew Orsich

MongoDB C#ライブラリの最新バージョンをご覧ください... LINQをサポートしています!

http://www.mongodb.org/display/DOCS/CSharp+Driver+LINQ+Tutorial

36
reach4thelasers

私はエンティティフレームワークの大ファンなので、最初にmongoDbを試してみたときに、EF Code Firstに次ぐアプローチを持つ「MongoDB.Dynamic」というライブラリを作成しました。 MongoDBにはコレクション間の物理的な関係はありませんが、シミュレートできます。 MongoDB.DynamicにはEager Loadingと呼ばれる機能があり、コレクション間の関係を構成し、エンティティに慣習的な構造がある場合に関連ドキュメントを自動的にロードできます。 MongoDB.Dynamic でいくつかのドキュメントを試すことができます

7
Jone Polvora

オンラインで見ると、RSSBusはエンティティフレームワーク6で使用できるMongoDBProviderServices dllを作成したように見えます。

http://cdn.rssbus.com/help/DG1/ado/pg_ef6.htm

リンクには、その実装方法に関するチュートリアルが含まれています。

2
chris31389

LINQを使用するMongoDbプロバイダーの古いバージョンを使用することはお勧めしません。最高で安定したC#MongoDbドライバーは、Buildersメカニズムを使用するC#用の公式MongoDbドライバー2.0です。

LINQレガシードライバーには、不便で低速な一括挿入メカニズムに関する多くの制約があります。

0

CDataは、Entity Framework 6.0を使用してMongoDbでCRUD操作を行うためのライブラリを開発しました。しかし、無料ではありません。

ライブラリの詳細は

https://www.cdata.com/kb/tech/mongodb-ado-codefirst.rst

0
Faisal Ahmed