【发布时间】:2017-05-15 11:42:01
【问题描述】:
我尝试使用 Distinct() 和一些可查询的代码,如下所示:
var finalWhere = Expression.Lambda<Func<Data.DataModel.TrialSummary, bool>>(containsMethod, parameter);
queryableTrialSummary = queryableTrialSummary.Where(finalWhere).Distinct();
var trials = queryableTrialSummary.Select(x => x.Trial_Code).Distinct();
但我发现为 distinct 生成的 SQL 语句如下;
SELECT
[Distinct1].[Trial_Code] AS [Trial_Code]
FROM ( SELECT DISTINCT
[Extent1].[Trial_Code] AS [Trial_Code]
FROM [OBAR].[TrialSummary] AS [Extent1]
WHERE [Extent1].[Trial_MasterProtocolId] IN (N'15NOPEPYT512')
) AS [Distinct1]
我的问题是:为什么上面的SQL语句中有两个select语句,一个inner,一个outer。
我是不是做错了什么,因为我认为这应该在这里产生错误,因为我认为这应该产生如下 SQL 语句
SELECT DISTINCT
[Extent1].[Trial_Code] AS [Trial_Code]
FROM [OBAR].[TrialSummary] AS [Extent1]
WHERE [Extent1].[Trial_MasterProtocolId] IN (N'15NOPEPYT512')
你能帮忙吗?
【问题讨论】:
标签: c# linq linq-to-entities distinct expression-trees