使用linq-to-sql返回计数

mrb*_*lah 13 linq-to-sql

我想返回自特定日期以来新用户的数量.

Users表具有:UserID,username,dateJoined.

SELECT COUNT(USERID)
FROM Users
where dateJoined > @date
Run Code Online (Sandbox Code Playgroud)

如何看待linq-to-sql?

你能用关键字COUNT吗?

Jos*_*eph 15

你可以去两条路线:

var count = (from u in context.Users where u.datJoined > date select u).Count();
Run Code Online (Sandbox Code Playgroud)

要么

var count = context.Users.Where( x => x.datJoined > date).Count();
Run Code Online (Sandbox Code Playgroud)

两者都是等价的,它实际上归结为个人偏好.

  • 您可以通过一次调用Count()来执行第二个示例.int count = context.Users.Count(x => x.datJoined> date); (3认同)
  • 我认为第一个不编译,因为它需要一个选择,但我建议第二个. (2认同)
  • 第一个工作正常,因为它现在,它看起来不像它被编辑. (2认同)

Dav*_*rab 1

我假设您有一个名为 users 的 IEnumberable 列表和一些名为 somedate 的变量。

int count = users
   .Where<User>(i => i.dateJoined > someDate)
   .Count<User>();
Run Code Online (Sandbox Code Playgroud)

这将适用于任何 IEnumberable 列表,而不仅仅是 Linq to Sql