2

同じマシン上の複数のアプリケーションが 1 つの同じデータベースにアクセスするソリューションを探しています。通常、操作は読み取りのみであるため、同時書き込みアクセスも提供する必要はありません。

SQL Server Express、SQL Server LocalDb、SQL CE、SQLite、MySQL を確認しましたが、どれが最適なソリューションであるか確信が持てません。SQL CE では同時読み取りアクセスが許可されているが、SQL Server LocalDb では許可されていないことを読んだことがあります。後でスケールアウトします。

それぞれが 5000 行未満のテーブルを 5 ~ 10 個管理するのが好きなので、非常に軽量なコンテンツです。

次の要件を満たすソリューションを探しています。

  • 同じマシン上の複数のアプリケーションによる同時読み取りアクセス
  • ある程度軽量化する必要があります。後でソリューション内のすべてのアプリケーションを別のマシンに移動するつもりであり、可能であれば 200 MB の本格的な SQL Server Ex@ress バージョンをインストールする必要はありません。
  • VS2012 Express でうまく動作するはずです (sqlite と mysql は、EF5 をサポートしていないか、サーバー エクスプローラーに表示されないかのいずれかで、その点で非常にサポートされていません。
  • Workbench、Management Studio、またはその他のサードパーティ アプリなどの管理コンソール内でデータベース テーブルを手動で更新するには、SQL ソリューションである必要があります。
  • EF またはその他の ORM ソリューションである程度動作するはずです。エンティティ クラスを作成し、そこからデータベースを作成したり、クラス オブジェクトを使用してテーブルを更新したりしたいと考えています。また、SQL コードを使用せずに、テーブルの行からクラス オブジェクト コレクションを作成したいと考えています。

私は .Net 4.5 で C# をターゲットにしていますが、それは、SQL CE が同時読み取りを許可するタスクを実行できるかどうか、および CE データ テーブルをロードして、何らかの管理コンソールでコンテンツを編集および視覚化する方法についての質問に要約されると思います。また、SQL CE は EF5 とうまく連携しますか? より良い提案はありますか?

4

2 に答える 2

1

あなたが意見を求めているので、SQLiteが私の答えです。

SQLiteほどの同時実行性をサポートする組み込みSQLデータベースエンジンは他にありません。SQLiteを使用すると、複数のプロセスでデータベースファイルを一度に開いたり、複数のプロセスでデータベースを一度に読み取ったりできます。プロセスが書き込みを行う場合、更新中はデータベースファイル全体をロックする必要があります。しかし、それは通常、数ミリ秒しかかかりません。他のプロセスは、ライターが終了するのを待ってから、ビジネスを続行します。他の組み込みSQLデータベースエンジンは通常、一度に1つのプロセスのみがデータベースに接続できるようにします。

32ビットWindows(.NET Framework 4.5)のセットアップ

このセットアップパッケージは、VisualStudio2012のデザイン時コンポーネントをインストールできます。

于 2013-01-21T08:37:41.557 に答える
0

SQLCEはEF5およびVS2012Expressで動作し、非常に軽量で、同じマシン上で複数のリーダーをサポートし、SQL Server Compact Toolboxアドイン(またはスタンドアロン)と組み合わせたVS Pro +で管理できます(私は作成者です)

于 2013-01-21T09:51:01.877 に答える