2009-08-15 15 views
1

私はVS 2010で、以下の記述の手順に従って、しかし、無駄にしようとした:データバインディングとEntity Frameworkを使用して0コード(簡単な)アプリケーションを作成できますか?どうやって?

  • は、新しいWindowsフォームアプリケーションを作成します。プロジェクトが
  • 基づいて、新しいオブジェクトのデータソースを追加
  • がスカラーのFirstNameプロパティとLastNameの
  • 生成デシベルスクリプト
  • デシベルでテーブルを作成するには、DBのスクリプトを実行して新しいエンティティの顧客を追加プロジェクトに新しい空のADO EDMを追加します。 on EDM Model1
  • [データソース]ウィンドウで[対象顧客]を選択し、[詳細]ビューの形式でフォームにドロップします。
  • 一般的なバインディングコントロールがすべて作成されているので、[保存]ボタンを有効にするだけです。

私はアプリを実行すると、フォームが表示されます。私は新しいレコードを追加し、それらの間をナビゲートすることができます。私はsaveを押しますが、アプリケーションを再初期化すると、すべてのデータが失われます。

このコードを0コードで作成することは可能ですか?そうでない場合は、このコードを作成するために最低限必要なものは何ですか?

答えて

2

実は私はデフォルトでは

...それはEntity Frameworkのか、Windowsフォームとは何の関係もないと思いますが、データベースファイルの設定「出力ディレクトリにコピー」は「常にコピー」に設定されているので、あなたのプログラムが使用するDBファイルは、それが

OKの問題を解決する必要があり、あなたがコンパイルするたびに...「新しい場合はコピーする」オプションを変更して上書きされ、どうやらそれは...問題ありませんでした

実際にはコードを書くことなくそれを行うことはできません:ObjectContextでSaveChangesを呼び出す必要がありますエンティティに加えられた変更を維持する

private void buttonSave_Click(object sender, EventArgs e) 
{ 
    db.SaveChanges(); 
} 

UPDATE:here's a full working example

注:私はので、SQL Server Compactのの制限のため、予想より少し多くのコードを書かなければならなかった:それは、ID列にエンティティのマッピングをサポートしていません、代わりに手動でGUIDを生成する必要がありました(customerBindingSource_AddingNewメソッド内)。使用するRDBMSがサポートしている場合は、このコードは必要ありません。

+0

どのようなdbファイルを正確に参照していますか?私のEDMはSql Serverのデータベースを指しています。私は変更がDBに永続することを期待しています。新しいレコードは、データベース内のテーブルのデータとして表示する必要があります。 – Dan

+0

OK、添付された.mdfファイルを使用していませんか? –

+0

私の更新された回答を参照 –

関連する問題