使用 entity framework 保存更改后本地数据库未更新

Local database not update after SaveChanges with entity framework

我想使用本地数据库 (.mdf) 和 entity framework 创建一个 winform 应用程序。

我已经创建了数据库和模型。当我执行这段代码时:

using (var context = new testEntity())
{
    CLIENTS c = new CLIENTS();
    c.Name = "name";
    c.Age = 10;
    context.CLIENTS.Add(c);
    context.SaveChanges();
}

在数据库中创建了一个客户端,我可以通过以下代码获取它:

using (var context = new testEntity())
{
    List<CLIENTS> clients = context.CLIENTS.ToList();
    //break point here
}

但是关闭程序后添加的客户端不在.mdf文件中。 如果我在 .mdf 文件中添加一些行,我可以显示它们而不是相反的。

如果有人可以帮助我,谢谢

检查数据库的Copy to Output Directory
将数据库文件的 Copy to Output Directory 属性 更改为 Copy if newer..

.mdf 每次重建代码时文件都会丢失更改: 解决方案:将 .mdf 文件保留在其他位置而不是构建文件夹位置,例如CD 驱动器,分别更改连接字符串。您也可以参考答案。

查看配置文件中的连接字符串 (App.config) 当您从数据库生成 .edmx 时,如果您在询问时单击是,它会在调试文件夹中复制您的数据库(如果您在调试时 运行)。因此,正如所说,每次重建时,数据库副本的内容都会被清除。

您必须更改连接字符串以指向您的初始数据库。