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

Having problems converting a complicated LINQ DataContext C# query to a SQL query

我目前一直在尝试将下面的查询 string/code 转换为 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 只是一个空检查器。 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)