我正在尝试在链接到数据库查询的 IQUEeryable 上运行 Select。它工作正常,但对于所有被选择的属性,它运行一个单独的查询。
我的代码看起来像这样
IQueryable<MyDataSource> data = [Some Complicated Query I've been Building Up];
var results = data.Select(d => new
{
A = d.A,
B = d.B,
C = d.C
}).Take(100).ToArray();
现在,这需要很长时间,即使实际的查询不需要那么长时间。当我在其上运行 SQL 分析器时,我发现它为我选择的每个属性运行不同的 SQL 选择过程 - 对于我返回的每个实体(因此在上面的示例中,大约 300 个不同的查询,以及作为执行过滤的实际第一个查询)。
我很确定我在这里做错了什么,这是什么?我希望它运行一个大型查询 - 从数据源中选择正确的列(你知道 Select top 100 dA, dB, dC from [bla bla] ),而不是所有这些混乱。