2012-11-14 123 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 Directory設置爲Copy always,這意味着每次你按下F5(建立或調試您的應用程序),該文件得到通過在項目中的空單更換時間。

mdf文件應該可以解決你的問題的屬性窗口上的更改Copy to Output Directory

如果使用Copy if newer你將要堅持,直到你編輯數據庫(MDF)本身數據庫的內容進行任何修改。

隨着Do not copy任何變化mdf文件是不會讓你的應用程序反映並可能會產生與EF問題。

我建議這種情況下,你的MDF文件使用Copy if newer並填寫您的基本數據,因此你將它始終可用。

+0

我嘗試了不同的組合,如果更新也複製。但是當我關閉連接到數據庫然後刷新它,count still = 1 –

+0

你是什麼意思通過刷新它?請使用類似這樣的內容並粘貼您的結果:http://pastebin.com/MdwgeHKn –

+0

結果很簡單。如果我只按F5 5次,count = 5,但如果我關閉項目並打開它,然後按F5,count將= 1.所以我認爲,你是對的,數據庫被新的替換。但如何阻止它? –