當我嘗試使用SaveChanges()將實體寫入數據庫時,調用成功(返回1),但實際上並未寫入數據庫。此外,通過添加一個savingchanges事件處理程序,我能夠看到該項目實際上通過具有正確屬性的保存事件(具體來說,一個對象更改了狀態,它是我發送的新實體)。當我在後面讀取數據庫時,沒有新的數據行。有沒有錯誤或拋出的異常...Entity Framwork SaveChanges()不寫入數據庫
CommunityEF.Community c = new CommunityEF.Community();
c.IdNumber = 0; //set key
c.Name = "Test";
CommunityEF.CommunitySystemContainer cc = new CommunityEF.CommunitySystemContainer();
cc.Communities.AddObject(c); // also tried "cc.AddToCommunities(c);"
int result=cc.SaveChanges(System.Data.Objects.SaveOptions.DetectChangesBeforeSave);
//result is always 1
我有檢討類似報道,但大多有一條線缺失或不正確(或甚至不按順序)。在這種情況下,我可以看到它從頭到尾成功通過系統,但實際上它並不會在數據庫中結束。
既然有人問在另一篇文章,這是我的連接字符串: metadata=res://*/CommunityEF.CommunitySystem.csdl|res://*/CommunityEF.CommunitySystem.ssdl|res://*/CommunityEF.CommunitySystem.msl;provider=System.Data.SqlServerCe.3.5;provider connection string="Data Source=|DataDirectory|\DB\Database1.sdf"" providerName="System.Data.EntityClient" />
而且,它不應該的問題(但我知道它),但我使用VS2010 Express和它是一個窗口應用程序,而不是Web應用程序。
在此事先感謝您的幫助。
問題原來是因爲我忘記將數據庫屬性設置爲不能複製。我以爲我已經這樣做了,但之後不得不從頭開始重新啓動(EF中的一些問題,我在這個網站上有一篇文章),並且還沒有爲這個項目版本做過。對不起,錯過了那個明顯的一個,但是這是漫長的一天。我的代碼工作,但在bin/debug目錄下的「本地副本」上運行。 –