为了账号安全,请及时绑定邮箱和手机立即绑定

我可以在带有动态 datePartArg 的实体框架中使用 SqlFunctions

我可以在带有动态 datePartArg 的实体框架中使用 SqlFunctions

C#
茅侃侃 2021-07-10 10:00:27
以下代码EntityCommandCompilationException因注释行而抛出一个:var datePartArg = "dd";var minutesInStatePerSegment = await db.History_WorkPlaceStates        .Where(x => selector.StartTimeUtc <= x.Started && x.Ended < selector.EndTimeUtc)        .Select(x => new {                    start = x.Started,                    minutes = x.Minutes,                    state = x.State,                })        .GroupBy(x => new {                    //This causes an exception:                    segment = SqlFunctions.DateDiff(datePartArg, selector.StartTimeUtc, x.start),                    state = x.state,                })        .Select(x => new {                    state = x.Key.state,                    segment = x.Key.segment,                    minutes = x.Sum(y => y.minutes),                }).ToListAsync();发生这种情况是因为DateDiff在 SQL Server 中只能将文字字符串用作其第一个参数,而不能使用变量。实体框架在 SQL 中生成一个变量,因此我们得到了异常。有没有办法解决这个问题?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 164 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信