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

时间:2016-05-19 15:33:10

标签: c# sql linq datacontext

我目前一直在尝试将下面的查询字符串/代码转换为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();

2 个答案:

答案 0 :(得分:2)

HasValue只是一个空检查器。 DaysOld似乎是传入的变量。像这样......

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

当然,好的做法是指定每个列

答案 1 :(得分:1)

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