2009-08-10 9 views
11

特定の日付以降に新しいユーザーの数を返したいと思います。linq-to-sqlでカウントを返します

ユーザーテーブルには、UserID、username、dateJoinedがあります。

SELECT COUNT(USERID) 
FROM Users 
where dateJoined > @date 

これはlinq-to-sqlでどのように見えますか?

キーワードCOUNTを使用できますか?

答えて

1

私はユーザーと呼ばれるIEnumberableリストとsomedateと呼ばれるいくつかの変数があると仮定しています。

int count = users 
    .Where<User>(i => i.dateJoined > someDate) 
    .Count<User>(); 

これは、SQL

に任意のIEnumberableリストだけではなく、LINQのに対して
+1

ただし、これは拡張メソッドを呼び出すだけであることに注意してください。実際にはLINQではありません(LINQはクエリの言語構文であり、LINQが使用する拡張メソッドを使用しているという意味です)。それには何も間違いありません。 –

+1

"Where()"は必要ありません。ラムダ式を "Count()"に入れるだけです。 – Suncat2000

1
(from u in context.Users where u.dateJoined > date select u).Count() 
13

に動作します次の2つのルートを行くことができます:どちらが等価である

var count = (from u in context.Users where u.datJoined > date select u).Count(); 

または

var count = context.Users.Where(x => x.datJoined > date).Count(); 

を、それは本当にマットに沸騰する個人的な好みのものです。

+2

私は最初のものは選択を必要とするのでコンパイルしないと思いますが、私は2番目のものをお勧めしたいと思います。 –

+1

Count()を1回呼び出すだけで2番目の例を実行できます。 int count = context.Users.Count(x => x.datJoined> date); –

+1

最初のものは今のところうまく動作し、編集されたようには見えません。 – nasch

関連する問題