【问题标题】:Having problems converting a complicated LINQ DataContext C# query to a SQL query将复杂的 LINQ DataContext C# 查询转换为 SQL 查询时遇到问题
【发布时间】:2016-05-19 15:33:09
【问题描述】:

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

【问题讨论】:

  • 您能否添加更多详细信息,例如您的 ORM LinqToSQL 或 EntityFramework 是什么。如果是 EF,那么是哪个版本的 EF?

标签: c# sql linq datacontext


【解决方案1】:

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

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

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

【讨论】:

  • 也许在那里选择 'IS' NULL
【解决方案2】:
Select top 1 * from MasterCalculator where Daysold >= @startDayRange and (@endDayRange is null or DaysOld <= @endDayRange)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-24
    • 1970-01-01
    • 1970-01-01
    • 2021-06-07
    • 2013-05-25
    • 2014-10-18
    • 2014-08-14
    相关资源
    最近更新 更多