【发布时间】:2012-06-20 23:04:05
【问题描述】:
我有以下 LINQ 查询:
var queryGroups = (from p in db.cl_contact_event
select new Groups { inputFileName = p.input_file_name }).Distinct();
运行时转换为以下内容:
SELECT
[Distinct1].[C1] AS [C1],
[Distinct1].[input_file_name] AS [input_file_name]
FROM ( SELECT DISTINCT
[Extent1].[input_file_name] AS [input_file_name],
1 AS [C1]
FROM [mel].[cl_contact_event] AS [Extent1]
) AS [Distinct1]
现在我很确定存在子选择的原因是因为我有基本的 LINQ 查询被 () 包围,然后执行 .Distinct() 但我对 LINQ 的了解不够,无法确定这。如果确实如此,有没有办法重组/编码我的查询,以便不会发生子选择?
我知道我可能只是在这里吹毛求疵,但我只是好奇。
【问题讨论】:
-
@DannyVarod linq-to-entities 我相信,因为我使用的是 EF4,所以我正在查询 Sybase 数据库。
-
在这种情况下,更改您使用的标签并相应地更新问题的标题。
-
比较 EF 生成的查询计划和您建议的改进之间的查询计划,看看是否有差异。查询优化器非常聪明。
标签: c# linq linq-to-entities sybase