【发布时间】:2010-07-20 12:15:02
【问题描述】:
我是 EntityFramework 的新手。
我的应用程序有一个上下文对象实例池(每个上下文都有 1 个与数据库的连接)。
问题是当我更新一个对象(并调用 SaveChanges)时,数据会在数据库和更新上下文中更新,但是当我从其他实例中选择时,它会获取所选对象的旧数据。
例子:
让我们想象一个名为 tbl 的表。
该表有 2 列:id 和 data。
有 1 行:id = 1,data = 2。
EFContext context1 = new EFContext();
EFContext context2 = new EFContext();
var obj1 = context1.tbl.Where(a => a.id == 1);
var obj2 = context2.tbl.Where(a => a.id == 1);
obj2.data = 10;
context2.SaveChanges();
var obj3 = context1.tbl.Where(a => a.id == 1);
执行这些行后,obj3.data 包含 2,而不是 10。
我该如何解决这个问题?
我不想每次访问数据库时都创建上下文实例。
刷新不够好,我必须在每次查询之前都这样做(我的应用程序是多线程的),这需要很多时间。
如果我有办法告诉实体框架在我每次尝试选择时执行查询,那就太好了。
谢谢!
【问题讨论】:
标签: c# database visual-studio oracle entity-framework