埋め込まれた.NETデータベース(DB4O、Nhibernate、RavendBなど)のガイダンスを探しています

StackOverflow https://stackoverflow.com/questions/3580510

質問

埋め込みデータベースを使用して保存したいオブジェクトモデルがあります。私はこれまでのところ、db4o、nhibernate to sqlce(w/ linq)、およびravendbを見てきました。これは、デスクトップC#アプリケーションで使用されます。

私が活用しようとしている主な機能は、linqまたは類似のクエリ(SQLまたはHQLなし)、埋め込みデータエンジン、POCOS、POCOファーストモデル、インストールなし(レジストリまたは類似)

誰かがそれを提案できますか? 3人は最高の選択肢を見ていますか?他にオプションはありますか? 3つのうち、誰かが互いに推奨することができますか?

ありがとう

役に立ちましたか?

解決

さて、3つの提案されたデータベースの性質は非常に異なっています。 hibernateを使用したsqlce as rdbms a orm with a orm、db4o as object database、ravendb as document database。それぞれにその強みがあります。

SQL CE&NHIBERNATE-COMBOいいもの:

  • ツーリング、知識、大きなコミュニティにおける非常に良いサポートがあります
  • MS SQLサーバーに簡単にアップグレージできます
  • 極端な良い報告サポート
  • SQLのパワー

悪い人:

  • マッピングが必要です
  • OOとリレーショナルの世界の間のマッピングは簡単ではなく、複雑なモデルの問題につながる可能性があります。

Ravendb

いいもの:

  • マッピングは必要ありません
  • 使いやすい
  • 強力なインデックス
  • JSON&HTTPアクセス

悪い人:

  • ドメインがドキュメント指向のアプローチに適合しない場合、それは非常に苦痛になります
  • .NETフレームワーククライアントプロファイルをサポートしていません(OPの質問は組み込みデータベースに関するものであるため、これは特に重要です)

DB4O

いいもの:

  • マッピングは必要ありません
  • 使いやすい
  • ストレージモデルはオブジェクトモデルに近いです。これは、非常に複雑なモデルでも機能します。
  • -

悪い人:

  • ツールサポートは弱いです。

AFAIK 3つすべてがLinqとPoco-Firstアプローチをサポートしています。ただし、nhibernate&sql ceは、摩擦がないほど摩擦のないマッピングを必要としているためです。

Poco First、Linq-Support、EBeddedの使用、使いやすいことに焦点を当てている場合は、RavedbまたはDB4Oを試してみると思います。 「安全性」、コミュニティの知識、ツールサポート、レポートに焦点が当てられている場合は、NhibernateおよびSQL CEを使用します。

他のヒント

Firebird エンタープライズデータベースのすべての最新の機能を長い間サポートしてきた素晴らしい組み込みデータベースです。

  • ANSI SQL
  • ストアドプロシージャ
  • トリガー

あなたは得ることができます .NETプロバイダー (サイトによると5月24日に最後に更新されました)、それはエンティティフレームワークとLINQをサポートしています。

見る この質問. 。 LINQサポートについては、チェックしてください dblinq, 、または既にNhibernateを使用する予定なので、Nhibernate独自のLinqプロバイダーを使用できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top