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



我遇到了一个不寻常的问题,如果我对IQueryable进行单独调用,创建IQueryaable的初始调用将生成第一个调用特定的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的工作原理?

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

最新更新