2016-05-17 94 views
0

我想创建一个使用本地数据库(.mdf)和实体框架的winform应用程序。SaveChanges与实体框架后本地数据库不会更新

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

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文件中添加一些行,我可以显示它们,但不是相反的。

如果有人能帮帮我,谢谢

+0

上下文构造函数是什么样的?数据库初始值设定项是什么?任何重写(SaveChanges,modelbuilder,配置)? – DevilSuichiro

回答

6

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

+0

它工作,当我执行几次我的程序,我可以得到最后一个添加的客户端,但mdf文件是空的。 而我重建程序,数据库被清除... –

1

.mdf每次重建代码时文件都会丢失: 解决方案:将.mdf文件保存在其他位置,而不是构建文件夹位置。 CD驱动器,对连接字符串进行相应更改。你也可以参考Pranav's的答案。

+0

我的mdf文件在项目位置 –

0

查看配置文件(App.config)中的连接字符串 当您从数据库生成.edmx时,它会在debug文件夹中生成数据库的副本(如果您在debug上运行)if当它被问到时你点击了yes。正如所说的,每次重建时,数据库副本的内容都会被清除。

您必须将连接字符串更改为指向您的初始dabatase。

相关问题