我想返回自特定日期以來新用戶的計數。用linq-to-sql返回計數
用戶表具有:UserID,用戶名,dateJoined。
SELECT COUNT(USERID)
FROM Users
where dateJoined > @date
這在linq-to-sql中看起來如何?
你可以使用關鍵字COUNT?
我想返回自特定日期以來新用戶的計數。用linq-to-sql返回計數
用戶表具有:UserID,用戶名,dateJoined。
SELECT COUNT(USERID)
FROM Users
where dateJoined > @date
這在linq-to-sql中看起來如何?
你可以使用關鍵字COUNT?
我假設你有一個名爲users的IEnumberable列表和一些名爲somedate的變量。
int count = users
.Where<User>(i => i.dateJoined > someDate)
.Count<User>();
這將會努力反對任何IEnumberable名單不僅僅是LINQ to SQL的
(from u in context.Users where u.dateJoined > date select u).Count()
你可以走兩條路線:
var count = (from u in context.Users where u.datJoined > date select u).Count();
或
var count = context.Users.Where(x => x.datJoined > date).Count();
兩者是等價,它真的可以歸結爲亞光呃個人喜好。
我認爲第一個不編譯,因爲它需要選擇,但我建議第二個。 – 2009-08-10 14:30:50
您可以通過一次調用Count()來完成第二個示例。 int count = context.Users.Count(x => x.datJoined> date); – 2014-07-24 07:24:09
第一個和現在一樣正常工作,看起來並沒有被編輯過。 – nasch 2015-10-02 00:29:05
但應該指出,這只是調用擴展方法。它實際上並不是LINQ(從某種意義上說,LINQ是用於查詢的語言語法;您只是使用LINQ使用的擴展方法)。沒有什麼不對,只值得注意。 – 2009-08-10 14:26:21
你不需要「Where()」。只需將lambda表達式放在「Count()」中即可。 – Suncat2000 2013-02-15 21:06:10