【问题标题】:linq to sql select as commandlinq to sql 选择作为命令
【发布时间】:2013-05-22 11:52:59
【问题描述】:

我有一个类似这样的 SQL 查询:

SELECT 
((dbo.ActiveWO.StartTime*60*60*24) - dbo.ActiveWOUpdatedTimes.ElapsedTime) as TimeLeft

如何将它插入到 linq to sql 查询中?

基本上不知道AS的语法是什么以及如何在c#查询中实际编写上面的计算,然后我需要通过TimeLeft排序。

【问题讨论】:

    标签: c# sql database linq


    【解决方案1】:

    来自您的previous question,我猜您有如下查询。您可以使用select new 创建一个anonymous type object,然后使用OrderBy,例如:

    var query = (from activeWO in context.ActiveWOs
                join activeWOUpdated in context.ActiveWOUpdatedTimes on activeWO.PW_ID equals activeWOUpdated.PW_ID into dj
                from activeWOUpdated in dj.DefaultIfEmpty()
                where activeWO.WODC.Contains("IDC")
                select new 
                {
                  TimeLeft = activeWO.StartTime * 60 * 60 * 24 - dj.ElapsedTime
                }).Orderby(r=> r.TimeLeft); 
    

    【讨论】:

    • 是的。这是完全正确的。谢谢。习惯 linq :)
    【解决方案2】:

    使用anonymous types:

    var results = ... //your query
                  .Select(a => new 
                   {
                      TimeLeft = a.StartTime * 60 * 60 * 24 - a.ElapsedTime
                   });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多