2016-06-01 91 views
0

在這裏,我有一個表格返回給我一個VALID客戶端,我嘗試將它添加到我的localDatabase和saveChanges(),但關閉應用程序後,數據不保留在數據庫中。實體框架不堅持數據庫中的數據

FacturationAppContext db; 
public Form1() 
{ 
    InitializeComponent(); 
    db = new FacturationAppContext();  
} 

private void addNewClient(object sender, EventArgs e) 
{ 
    AddClient frmAdd = new AddClient(); 
    frmAdd.ShowDialog(); //form that returns a valid Client 

    if (frmAdd.newClient != null) 
    { 
      db.Clients.Add(frmAjouter.newClient);     
      db.SaveChanges(); 
    } 
} 

甚至直接在方法創建客戶端,數據(客戶端)不會關閉該應用程序後留在數據庫中。

編輯:這裏是我的Connexion的字符串:

<connectionStrings> 
<add name="FacturationAppContext" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=(LocalDB)\MSSQLLocalDB;attachdbfilename=|DataDirectory|\CycloneFacturation.mdf;integrated security=True;connect timeout=30;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 

感謝,查爾斯

+1

我」我不完全記得名字財產,但在本地數據庫屬性更改「複製...」屬性「如果新..」喜歡。 –

+0

代碼看起來對我很好。你確定你正在驗證客戶端是否存在於被添加到的同一個數據庫中?也許檢查連接字符串並確保。我也會嘗試在'addNewClient'內的'using'塊中分配'FracturationAppContext'。最好不要讓連接懸空。如果您以後需要優化性能,則需要考慮資源管理影響。 – Jim

+0

它似乎將數據添加到數據庫中,但直到應用程序處於活動狀態。 我會添加connexion字符串,但我很肯定它的好的 – Charles

回答

0

儘量做到:

private void addNewClient(object sender, EventArgs e) 
     { 
      AddClient frmAdd = new AddClient(); 
      frmAdd.ShowDialog(); //form that returns a valid Client 
      using (db = new FacturationAppContext()) 
      { 
       if (frmAdd.newClient != null) 
       { 
        db.Clients.Add(frmAjouter.newClient); 
        db.SaveChanges(); 
       } 
      } 

     } 

上下文中使用

+0

嘗試,但仍然沒有保存在關閉應用程序。數據庫僅在應用程序處於活動狀態時存儲數據 – Charles