2011-09-20 10 views
1

作成中のアプリケーションにローカルのSQL Server Compactデータベースがあります。私はLINQからSQLにSqlMetal.exeツールを使用してうまく動作する.dbmlファイルを生成しました。私は今では自分のアプリケーションで使用するテーブルオブジェクトを持っています。LINQからSQLへのローカルデータベースへの変更の送信がありません

私は奇妙な問題があります。私のDataContextでSubmitChanges()を呼び出した後も、データは決してコミットされません。しかし、不思議なことに、行を追加した後、これらの行は、datacontextの表オブジェクトには表示されますが、表には表示されません。アプリケーションを停止して起動した後でさえ、これらの行はまだDataContextに存在していましたが、数分後に消えるようです。

正しく設定しましたか? LINQが変更をコミットできるようにするためにSqlMetalを使用した後、これ以上実行する必要のあるステップはありますか?

+0

この問題を再現する実際のコードを表示できますか? – msarchet

+1

コード例...? – Mig

+0

私はコードをどのように表示できるか不明確です。オブジェクトの単純な作成で、そのオブジェクトでInsertOnSubmitメソッドを呼び出してからSubmitChangesを呼び出します。 – Chris

答えて

3

デフォルトのプロパティを使用してdbmlファイルにリンクしていることを前提としています。つまり、デバッグセッションを開始するたびにファイルが出力ディレクトリにコピーされ、そのセッションの変更内容(つまり、「コピー - >常に」)が表示されます。

変更を保存したい場合は、ファイル - >プロパティ - >コピーしないで右クリックします。デフォルトでは、IDEは元のデータベースを変更しないことを前提としており、デバッグ目的のコピーのみを使用します。

+0

わかりました。ありがとう! – Chris

関連する問題