2012-11-14 4 views
6

は、私がアプリケーションをコンソールにエンティティフレームワークを追加しよう(画像が含まれています): 私は押してから enter image description hereどのようにアプリケーションを慰めるため、エンティティフレームワークを追加する

enter image description here

「新しい項目を追加します」その後、

enter image description here

enter image description here

enter image description here

enter image description here

その後、私は、コードを追加しました:

class Program 
    { 
     static void Main(string[] args) 
     { 
      try 
      { 
       Database1Entities db = new Database1Entities(); 
       db.AddToTableTest(new TableTest { name = "name" }); 
       db.SaveChanges(); 

       int count = db.TableTest.Count(); 
       int ui = 9 + 0; 
      } 
      catch (Exception e) 
      { 

      } 
     } 
    } 

それは何のエラーを与えていないが、私は、データベース内のすべての変更が表示されません。 問題をより詳しく説明しましたhere

+4

例外を飲み込んでもエラーがないことをどのように知っていますか? –

+1

私はブレークポイントをそこに置く –

+1

あなたはそれが働いていることを確信するまでそれをエラーにするべきです。あなたが 'try/catch'を持っているならば、catchブロックの例外についてのみ知ります。あなたはそれをまったく持っていないのにデバッグしている場合は、エラーが発生した行を見つけて、何が間違っているかを知ることができます。 (VSにはこの動作を変更するオプションがありますが、これがデフォルトです) – Bobson

答えて

3

EFモデルをセットアップするのと同じ手順を実行しました。 database.mdfファイルのCopy to Output DirectoryCopy alwaysに設定されているため、F5キー(アプリケーションのビルドまたはデバッグ)を実行するたびに、ファイルが空のプロジェクトに置き換えられます。

mdfファイルの[プロパティ]ウィンドウでCopy to Output Directoryを変更すると、問題が解決するはずです。

Copy if newerを使用する場合は、データベース(mdf)自体を編集するまで、データベースの内容を変更しないでください。

Do not copyとすると、mdfファイルの変更がアプリケーションに反映されず、EFで問題が発生する可能性があります。

このシナリオでは、Copy if newerを使用し、mdfファイルの基本データを入力して常に利用できるようにすることをお勧めします。

+0

私はさまざまな組み合わせを試しました。しかし、データベースへの接続を閉じてからそれをリフレッシュすると、まだカウント= 1 –

+0

何をリフレッシュするのですか?このようなものを使用し、結果を貼り付けてください:http://pastebin.com/MdwgeHKn –

+0

結果は単純です。私がちょうどF5を5回押すと、カウント= 5です。しかし、プロジェクトを閉じてそれを開いてからF5を押すと、カウントは1になります。だから私はあなたが正しいと思うので、データベースは新しいものに置き換えられます。しかし、どのようにそれを停止するには? –

関連する問題