不使用表达式树:
引用内容
使用表达式树:
引用内容
结论:使用表达式树生成的SQL语句不包含查询条件,这样返回的记录比不使用表达式树时多。
复制内容到剪贴板
程序代码

var query = context.People.Where(item => item.Age == 20);

Select
[Extent1].[Id] AS [Id],
[Extent1].[Name] AS [Name],
[Extent1].[Age] AS [Age]
FROM [dbo].[Person] AS [Extent1]
Where 20 = [Extent1].[Age]
[Extent1].[Id] AS [Id],
[Extent1].[Name] AS [Name],
[Extent1].[Age] AS [Age]
FROM [dbo].[Person] AS [Extent1]
Where 20 = [Extent1].[Age]
使用表达式树:
复制内容到剪贴板
程序代码

Expression<Func<Person, bool>> exp = item => item.Age == 20;
var query = context.People.Where(exp.Compile());
var query = context.People.Where(exp.Compile());

Select
[Extent1].[Id] AS [Id],
[Extent1].[Name] AS [Name],
[Extent1].[Age] AS [Age]
FROM [dbo].[Person] AS [Extent1]
[Extent1].[Id] AS [Id],
[Extent1].[Name] AS [Name],
[Extent1].[Age] AS [Age]
FROM [dbo].[Person] AS [Extent1]
结论:使用表达式树生成的SQL语句不包含查询条件,这样返回的记录比不使用表达式树时多。