weixin_46330391 2020-10-28 08:23 采纳率: 0%
浏览 62

Sql语句转换成linq语句

select Line_Number, ODP_Date,sum(Quantity)

from [dbo].[Line_Daily_ODP_Detail]
where Is_Completed=1

and DATEDIFF (day ,ODP_Date,getdate())=0
and (
( datepart(dw,getdate())>1 and DATEDIFF (week ,ODP_Date,getdate())=0 and datepart(dw,ODP_Date)<>1)
or ( datepart(dw,getdate())=1 and ( DATEDIFF (week ,ODP_Date,getdate()-1 )=0

or DATEDIFF (week ,ODP_Date,getdate())=0 )
)
)
group by Line_Number, ODP_Date order by Line_Number, ODP_Date 如何把这个转换成linq语句

  • 写回答

1条回答 默认 最新

  • 憧憬blog 2023-03-15 00:27
    关注

    可以尝试使用以下的 LINQ 语句来实现相同的功能:

    var today = DateTime.Today;
    
    var query = from detail in dbContext.Line_Daily_ODP_Detail
                where detail.Is_Completed
                   && EntityFunctions.DiffDays(detail.ODP_Date, today) == 0
                   && (
                        (DbFunctions.DiffDays(today, detail.ODP_Date) > 1 && EntityFunctions.DiffWeeks(detail.ODP_Date, today) == 0 && EntityFunctions.DiffDays(detail.ODP_Date.DayOfWeek, DayOfWeek.Monday) != 0)
                        || (DbFunctions.DiffDays(today, detail.ODP_Date) == 1 && (EntityFunctions.DiffWeeks(detail.ODP_Date, today.AddDays(-1)) == 0 || EntityFunctions.DiffWeeks(detail.ODP_Date, today) == 0))
                      )
                group detail by new { detail.Line_Number, detail.ODP_Date } into g
                orderby g.Key.Line_Number, g.Key.ODP_Date
                select new
                {
                    Line_Number = g.Key.Line_Number,
                    ODP_Date = g.Key.ODP_Date,
                    Quantity = g.Sum(x => x.Quantity)
                };
    

    值得注意的是,这里假设 dbContext 是数据库上下文对象。此外,由于 DATEDIFF 等函数并不被 EF 6 直接支持,因此我们要使用 EntityFunctionsDbFunctions 进行日期计算。

    评论

报告相同问题?

悬赏问题

  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧