我有一个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