使用 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 文件保留在其他位置而不是构建文件夹位置,例如C
或 D
驱动器,分别更改连接字符串。您也可以参考答案。
查看配置文件中的连接字符串 (App.config)
当您从数据库生成 .edmx 时,如果您在询问时单击是,它会在调试文件夹中复制您的数据库(如果您在调试时 运行)。因此,正如所说,每次重建时,数据库副本的内容都会被清除。
您必须更改连接字符串以指向您的初始数据库。
我想使用本地数据库 (.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 文件保留在其他位置而不是构建文件夹位置,例如C
或 D
驱动器,分别更改连接字符串。您也可以参考
查看配置文件中的连接字符串 (App.config) 当您从数据库生成 .edmx 时,如果您在询问时单击是,它会在调试文件夹中复制您的数据库(如果您在调试时 运行)。因此,正如所说,每次重建时,数据库副本的内容都会被清除。
您必须更改连接字符串以指向您的初始数据库。