我有一個SQL Server CE數據庫文件,我有ADO.NET實體框架對象名爲History
。我執行以下操作以獲得最新的ID:SQL Server CE數據庫和ADO.Net實體框架 - 數據沒有保存
var historyid = (from id in db.Histories // Get the current highest history Id
select (Int32?)(id.Id)).Max();
HistoryID = Convert.ToInt32(historyid);
if (HistoryID == 0) // No current record exists
{
HistoryID = 1; // Set the starter history Id
}
(不是最好的方法,但它只是測試)。
此運作良好,並返回正確的值(如果我手動輸入的1的ID,則返回1,同樣用2等。)
的問題是用下面的代碼:
History history = new History();
history.Id = 1;
history.SoftwareInstalled = "test";
db.AddToHistories(history);
db.SaveChanges();
上述工作和運行良好,但更改不會保存到數據庫!爲什麼是這樣?
這裏是我的數據庫變量:dbDeSluggerEntities db = new dbDeSluggerEntities();
感謝。
編輯:這裏是一個更新:我注意到當我運行程序並調試它時,它顯示已經創建並插入了歷史記錄,並且還給出了已存在的主鍵的錯誤,每次運行時都會發生這種情況該應用程序(一遍又一遍)。但是,當我到服務器資源管理器並右鍵單擊數據庫並選擇「顯示錶數據」時,它將顯示沒有數據。當程序再次運行時,在調試中沒有主鍵錯誤或歷史記錄顯示!
你能告訴我們你的連接字符串嗎?您每次啓動應用程序時是否可能重新創建數據庫? – 2011-06-11 20:04:50