当我在 C# 中显示从查询生成的 SQL 时,最后一部分是什么?我可以删除它吗?

What is this last part when i display my generated SQL from query in c#? And can i remove it?

当我从 C# 生成查询时,它显示了这个

SELECT [Extent1].[Id] AS [Id], [Extent1].[RegionName] AS [RegionName] 
FROM [dbo].[RegionClasses] AS [Extent1] 
WHERE ([Extent1].[RegionName] = @p__linq__0) 
  OR (([Extent1].[RegionName] IS NULL) AND (@p__linq__0 IS NULL))

但问题是最后一个“或”在哪里。为什么它在那里,我该如何删除它?它有什么作用?

下面是我的 C# 查询代码:

var RegionlinqQuery = from regions
                      in ctx.Regions
                      where regions.RegionName == SearchTextBox.Text
                      select regions;

string sqlQuery = RegionlinqQuery.ToString();
RegionLabel.Text = sqlQuery;

您需要启用 context.Configuration.UseDatabaseNullSemantics 才能禁用此行为。您可以查看 documentation here