实体框架6 IQueryable不会使用单独的调用进行更新

时间:2018-11-19 11:29:29

标签: linq entity-framework-6 iqueryable

我有一个不寻常的问题,即如果我对IQueryable进行单独的调用,则创建IQueryable的初始调用将生成特定于第一个调用的SQL。这可以在调试和观察内部查询时看到。

当我进行内联调用时,例如:

IQueryable<TableEntity> tEnt = dbCtx.table.AsNoTracking().Include(t=> t.someRefData).Where(t => t.Id >= 10);

这会产生正确的内部SQL查询。

但是,如果我通过单独的不同调用动态进行查询,例如:

IQueryable<TableEntity> tEnt = dbCtx.table.AsNoTracking();
tEnt.Include(t=> t.someRefData);
tEnt.Where(t => t.Id >= 10);

内部SQL查询不会在tEnt声明之后更新以反映这些先前的调用。

我是否完全误解了IQueryable的工作原理?

1 个答案:

答案 0 :(得分:1)

tEnt = tEnt.Include(t=> t.someRefData);