質問
.net アプリケーションの 1 つに組み込みデータベースが必要です。
このデータベースは (Berkley とは異なり) SQL をサポートする必要があります。
誰かがオプションを提案できますか。
解決
私が考える主な選択肢は次のとおりです。
- SQLite
- SQL Server コンパクト (Linqサポート)
- VistaDB (Linqサポート)
- シャープHSQL
- 埋め込みファイアバード
- ブラックフィッシュSQL
他のヒント
私はVistaDBの詳細情報を後半に、ここでチャイムたかっます。
私たちのSQL構文は、SQL Serverの構文に非常に近く、我々はTSQLとCLRストアド手続きオブジェクトが含まれます。
は、アプリケーションとプロセスで実行され、そしてあなただけの両方の32ビットおよび64ビット(100%マネージドコード)のための1つのアセンブリを配置する必要があります。あなたが展開する必要が異なるアンマネージドアセンブリを持っているので、あなたはSQL CEでこれを行うことはできません。
あなたは完全にあなたのユーザー(一部の人々は、この上の大きな現実のもの)からエンジンを非表示にするなど、あなたのアプリとVistaDBを埋め込み、さらにはそれをILMERGE、データベース名を変更することができます。
そして、それは100%マネージドコードであるので、はい、それはまた、モノラル上で実行することができます。 (非インテルモノラル機も含む)いくつかの問題が残っています。
全開示 - 私は、会社の所有者だ。
SQL ServerのCompact Editionのは、.NET Compact Frameworkのための賢い選択です。私は秘儀コードがSSCEを学習するための非常に有用部位であることがしました。彼は、SQL ServerのMVPで、CEに焦点を当てています。
SQL ServerのCompact Editionのを見てください。それは単一のバイナリであり、それは単一のファイルにデータを格納し、それが(SQLiteのを含む他の多くの組み込みのDBとは異なります)同時実行をサポートし、インプロセスで実行されます。 Visual Studioを使用している場合プラスあなたはおそらくすでにそれを持っています。最後に、それを使用し、再配布する自由です。
私は本当に FirebirdSQL のような自分(また、CMSで言及しました)。これは、IIRC、このためで構築されたコアドライバと混合バイナリもあります、窓のdllのが埋め込ま実行することができます。それだけでなくActiveRecordの、およびNHibernateはとうまく動作します。ほとんどの.NET型を簡単にマップします。
他のオプションより一つの利点は、RDBMSモードに切り替えている代わりに、組み込みバージョンの、サーバーを使用するクエリ文字列を変更する唯一の問題です。あなたが将来的にモノを対象とするあらゆる欲求を持っている場合も、(残念ながら埋め込みモードで)Linux上でそれを実行することができます。