【发布时间】:2018-12-05 22:58:49
【问题描述】:
我有一个函数可以返回查询结果以进行进一步过滤,如下所示:
public IQueryable<MyData> Query(string name) {
using (var dbc = new MyDbContext())
return dbc.MyData.Where(v => v.Name == name);
}
然后我在另一个函数中调用它:
public f() {
var res = Query("john").Select(v => ......
var resList = res.ToList();
...
}
在这种情况下MyDbContext 的范围是什么?它什么时候处理?当Query() 返回或ToList() 中的f() 完成时?
如果是前者,我该如何更改,以便在 ToList() 完成时释放 DB 上下文?
(注意:我知道通常不需要在 EF 中使用 around DbContext,但我希望在这种情况下使用它,因为我正在尝试解决 sqlite 锁定问题)
谢谢!
【问题讨论】:
标签: c# entity-framework linq entity-framework-6 c#-7.0