2009-04-26 12 views
3

私はC#でWinFormsアプリケーションを作っています。私が欲しいのは私のために使用する単純なローカル・データベースですLINQ Confusion - アプリケーションが終了してもデータベースが永続しない?

  • ローカルデータベース
  • サービスベースのデータベース

:私は私のデータベースオブジェクトを作成するために行くとき、私は二つの選択肢を提示していますプロジェクト。私は私のテーブルを作成して、LINQ-TO-SQLクラスの作成者にそれらをオーバードラッグした後、「ローカル・データベース(コンパクト版)」を選択した場合

しかし、それは言う:

選択したオブジェクト(複数可)は、サポートされていないデータプロバイダを使用します。

なぜ、ローカルデータベースを作成するのが、オブジェクトリレーショナルデザイナにテーブルにドラッグするとサポートされていないプロバイダと見なされるのか分かりません。

したがって、私は第2のタイプの「サービスベースのデータベース」を試しています。私は私の基本的なアプリケーションのためにテーブルをレイアウトし、私のテーブルを作る。これらのテーブルをドラッグすると、LINQ-To-SQLデザイナーはうまく動作し、アプリケーションにコードを書き込んでデータベースエントリを挿入したり、アップレートしたりします。

しかし、この2番目の「サービスベースのデータベース」では、アプリケーションの実行中は、挿入と更新が機能します。しかし、私はそれを閉じると、元の状態に戻ります。私が手動でサーバーエクスプローラ経由でデータを追加しても、それでも問題はありませんが、挿入したものは保存されません。

LINQでローカルデータベースを作成して使用できないのはなぜですか?

これはオプションではない場合、「サービスベースのデータベース」(それが何であれ)がアプリケーションの終了を超えて持続するのはなぜですか?

ありがとうございました!


編集:LINQ-To-SQLオブジェクトデザイナーは、コンパクトエディションローカルデータベースでは動作しません。それでもやりとりはできますが、明らかにdmblファイルを生成するにはSqlMetalを使用する必要があります。

答えて

5

コンパイルすると、古いデータベースが消去され、新しいデータベースがbinフォルダーにコピーされます。したがって、binフォルダー内のデータベースにリンク(linqを使用)を試みてください。 connectionStringを変更してみてください。

関連する問題