EF4应用程序看不到数据库更新

时间:2011-05-25 21:25:30

标签: wpf entity-framework

当我在comon SQL SERVER DB前面运行我的应用程序的2个实例时,我有以下行为: 每次添加或删除对象时,另一个应用程序都会看到它 每次对对象进行更新时,另一个在我关闭并打开应用程序之前都看不到它

我正在使用WPF绑定和EF4 任何线索? 谢谢 Joghn

2 个答案:

答案 0 :(得分:0)

您的应用正在内存中维护状态,即数据的副本。

当您更改应用程序的一个实例中的数据并将数据保存到数据库时,它对应用程序的第二个实例中的内存没有影响。

要在第二个实例中显示它,您必须从数据库中获取数据。

我认为您正在做的是刷新数据。 EF做的是它说“我有这5行在服务器上有这些数据的任何特征”。它只是之前检索过的刷新行。

您需要使用用于在应用程序启动时加载数据的代码。如果要重用dbContext,还必须小心。

答案 1 :(得分:0)

我认为你正在重复使用上下文,不是吗? EF不会自动加载更改。如果运行查询,然后修改数据库中的数据,然后再次运行相同的查询,您将获得与第一个查询中相同的结果,只会添加新记录。 That is how EF behaves这种行为在ORM工具中非常重要。如果要强制上下文重新加载数据并丢弃应用程序中的状态(=所有未保存的更改将丢失),则必须使用MergeOption.OverwriteChangesexample here)运行查询或调用{{ 1}}方法Refresh