将复杂的LINQ DataContext C#查询转换为SQL查询时出现问题



我目前一直在尝试将下面的查询字符串/代码转换为SQL查询。

如果有人能解码这个查询,我将不胜感激。

AtrDataContext orion = new AtrDataContext();
MasterCalculator dcc = (from a in orion.MasterCalculator 
                        where DaysOld >= a.startDayRange 
                           && (!a.endDayRange.HasValue || DaysOld <= a.endDayRange) 
                        select a).FirstOrDefault();

HasValue只是一个null检查器。DaysOld似乎是一个传入的变量。。。

SELECT TOP 1 *
FROM MasterCalculator a
WHERE a.startDayRange <= @DaysOld
    AND (a.endDayRange IS NULL OR  a.endDayRange >= @DaysOld)

当然,好的做法是指定

中的每一列
Select top 1 * from MasterCalculator where Daysold >= @startDayRange and (@endDayRange is null or DaysOld <= @endDayRange)

最新更新