【发布时间】:2017-09-29 02:05:29
【问题描述】:
以下 SQL Server 查询返回用户成功登录的总数和最后一次登录(日期类型)。此查询的 LINQ 等效项是什么?
SELECT username, COUNT(LoginDate) AS total,
MAX(LoginDate) AS last_login
FROM login_history
GROUP BY username
无法找出以下中的 last_login 值:
var query = _context.login_history.GroupBy(u => u.userName, (key, values) => new { user_name = key, count = values.Count(), last_login = ???? });
更新:
例如,每次用户登录他/她的记录添加如下。请注意,命中列只是一个将每个登录记录加 1 的计数器。在下面的示例中,jsmith 到目前为止总共登录了 5 次,他的最后一次登录是在 7/24/2016 9:16。下表第二张显示的 T-Sql 查询结果反映了 jsmith 的总登录次数和上次登录日期:
UserName Login_hit LoginDate
jsmith 1 7/20/2016 13:37
jsmith 1 7/19/2016 10:40
jsmith 1 7/24/2016 9:16
jsmith 1 7/19/2016 9:16
jsmith 1 7/15/2016 14:55
bdoe 1 7/15/2016 14:55
....
SQL Server 中的 SQL 查询结果:
UserName |Total Logins | LasLoginDate
jsmith | 5 | 7/24/2016 9:16
bdoe | 79 | 7/12/2016 14:41
talbert | 23 | 7/8/2016 22:51
bdole | 87 | 7/21/2016 17:56
mdukakus | 31 | 7/22/2016 9:01
【问题讨论】:
标签: c# linq tsql sql-server-2012 entity-framework-core