C#   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c# – Linq查询过去7天的日期的不同值,运行查询时抛出异常大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_197_4@ 我有一个employee,我通过以下方式检索Id和Name字段:

var users = context.employees.ToList()
                   .SELEct(employee => new KeyValuePair<int,String>(Employee.id,employee.Name));

那部分工作正常,我的问题是有另一个勤设置外键并且有一个字段LoginDate是一个datetiR_748_11845@e值.用户可以多次登录,因此我希望获得用户在过去7天内登录次数的不同值.

foreach (var user in users)
{
    var days = context.Attendances.Where(x => x.Id == user.Key && x.LoginDate.Date > datetiR_748_11845@e.Now.AddDays(-7)).DisTinct().ToList();
     int count = days.Count();
     _attendanCETable.Rows.Add(user.Key,user.Value,count);
 }

我在运行Attendance表的查询时遇到异常:

解决方法

您可以在单个查询中执行所有操作:

var date = datetiR_748_11845@e.Now.AddDays(-7).Date; // I think you need date only here
var query = from e in context.employees
            join a in context.Attendances on e.Id equals a.Id into g
            SELEct new
            {
                e.Id,e.Name,Count = g.Where(x => x.LoginDate > datE)
                         .GroupBy(x = > new {
                               x.LoginDate.Year,x.LoginDate.Month,x.LoginDate.Day 
                          }).Count()
            };

foreach(var user in query)
   _attendanCETable.Rows.Add(user.Id,user.Name,user.Count);

EntityFramework也不支持datetiR_748_11845@e的Date属性.您应该使用匿名对象按日期部分对勤进行分组.

生成的@L_944_18@将如下所示:

SELECT [Extent1].[Id] AS [Id],[Extent1].[Name] AS [Name],(SELECT 
        count(1) AS [A1]
        FROM ( SELECT DISTinCT 
            DATEPART (year,[Extent2].[LoginDate]) AS [C1],DATEPART (month,[Extent2].[LoginDate]) AS [C2],DATEPART (day,FROM [dbo].[Attendances] AS [Extent2]
            WHERE [Extent1].[Id] = [Extent2].[Id]
        )  AS [DisTinct1]) AS [C1]
FROM [dbo].[employees] AS [Extent1]

大佬总结

以上是大佬教程为你收集整理的c# – Linq查询过去7天的日期的不同值,运行查询时抛出异常全部内容,希望文章能够帮你解决c# – Linq查询过去7天的日期的不同值,运行查询时抛出异常所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。