在使用实体框架的SaveChanges之后,本地数据库不会更新

时间:2016-05-17 08:24:05

标签: c# entity-framework visual-studio local-database

我想使用本地数据库(.mdf)和实体框架创建一个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文件中添加一些行,我可以显示它们但不是相反的。

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

3 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:1)

每次重建代码时,

.mdf文件都会丢失更改: 解决方案:将.mdf文件保留在其他位置而不是构建文件夹位置,例如CD驱动器,在连接字符串中进行相应的更改。您也可以参考Pranav's回答。

答案 2 :(得分:0)

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

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