database - SQL Server CE 数据库和 ADO.Net Entity Framework - 数据未保存

标签 database entity-framework ado.net sql-server-ce

我有一个 SQL Server CE 数据库文件和一个名为 History 的 ADO.NET Entity Framework 对象。我执行以下操作以获取最新 ID:

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();

谢谢。

编辑:这是一个更新:我注意到当我运行程序并调试它时,它显示已经创建并插入了一个历史记录并且还给出了主键已经存在的错误,每次运行时都会发生这种情况申请(一遍又一遍)。但是,当我转到服务器资源管理器并右键单击数据库并选择“显示表数据”时,它没有显示任何数据。当程序再次运行时,调试中没有显示主键错误或历史记录!

最佳答案

我遇到了完全相同的问题。默认情况下,当您运行应用程序并使用该数据库时,数据库将复制到您的 bin 文件夹中。

我的解决方案是进入数据库的属性并将其设置为永不复制,并在应用程序配置文件的连接字符串中放置数据库的完整文件路径。

关于database - SQL Server CE 数据库和 ADO.Net Entity Framework - 数据未保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6318079/

相关文章:

entity-framework - 没有主外键关系的 Entity Framework 代码优先内部连接

c# - 如何在企业应用程序中使用 Entity Framework

ado.net - 从 MATLAB 调用 ADO.NET

c# - 存储过程未返回输出参数

database - 如何在 PostgreSQL 的外表 SELECT MAX(id) 查询中使用索引?

android - 如何使用房间从没有主键的表迁移?

sql - 索引是否改进了所有类型的查询?

database - "incremental load"是什么意思?

c# - 有没有办法在更新数据库期间显示输出?

c# - 迭代 LINQ 实体结果