[英]Entity Framework SaveChanges is not working
我有一個C#winforms應用程序和一個SQL Server .mdf
數據庫文件。
我嘗試使用實體框架。 從數據庫中檢索數據時,它的效果很好,但是在調用.SaveChanges()
什么也沒有發生。 沒有錯誤,沒有異常,也沒有保存任何更改。
這個問題使我發瘋。 我發現了一堆幾乎相同的問題,但都沒有答案適合我的情況。
我的代碼如下所示:
using (World_ParkingEntities context = new World_ParkingEntities())
{
client _client = context.CreateObject<client>();
_client.name = name;
_client.mobile_number = phoneNo;
_client.email = email;
context.AddToclients(_client);
context.SaveChanges();
}
我的連接字符串:
<add name="World_ParkingEntities" connectionString="metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\World_Parking.mdf;Integrated Security=True;User Instance=True;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" /></connectionStrings>
整個用戶實例和AttachDbFileName =方法都有缺陷-充其量! 在Visual Studio中運行應用程序時,它將在.mdf
文件周圍復制(從App_Data
目錄復制到輸出目錄-通常是.\\bin\\debug
應用程序運行所在的位置),並且很可能 INSERT
可以正常工作-但最后您只是看錯了.mdf文件 !
如果您要堅持這種方法,請嘗試在context.SaveChanges();
之后放置一個斷點context.SaveChanges();
調用-然后使用SQL Server Mgmt Studio Express檢查.mdf
文件-我幾乎可以確定您的數據在那里。
我認為真正的解決方案是
安裝SQL Server Express(並且您已經完成了此操作)
安裝SQL Server Management Studio Express
在SSMS Express中創建數據庫,並為其指定一個邏輯名稱(例如World_Parking
)
使用其邏輯數據庫名稱 (在服務器上創建時提供)連接到該數據庫 -並且不要弄亂物理數據庫文件和用戶實例。 在這種情況下,您的連接字符串將類似於:
Data Source=.\\\\SQLEXPRESS;Database=World_Parking;Integrated Security=True
和其他一切是完全一樣的前...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.