我正在使用EF 4.0和VS2010。我有2个客户正在运行我的应用程序。 当我在一个客户端中保存更改时,我在SQL服务器中看到它们,但第二个客户端看不到它们。 我需要重新启动应用程序才能看到更改。 我正在使用数据层来处理所有数据库的东西,我一直打开我的连接(正如我在阅读的一些帖子中建议的那样)可能是问题???我无法再从头开始编写DL。
10倍
答案 0 :(得分:4)
默认情况下,如果在查询数据库中包含上述实体的一组实体时,实体被加载到上下文中,则会返回该实例。
您需要将MergeOption设置为OverwriteChanges
才能获取数据库中的更改。
context.Products.MergeOption = MergeOption.OverwriteChanges;
var products = context.Products.Where(/**/);
最好是为了避免这些问题创造短暂的环境。
答案 1 :(得分:1)
当您在其他连接上更改数据时,实体框架不会更新数据。要获得新状态,您必须创建Context并再次加载所有数据。