特定の日付以降に新しいユーザーの数を返したいと思います。linq-to-sqlでカウントを返します
ユーザーテーブルには、UserID、username、dateJoinedがあります。
SELECT COUNT(USERID)
FROM Users
where dateJoined > @date
これはlinq-to-sqlでどのように見えますか?
キーワードCOUNTを使用できますか?
特定の日付以降に新しいユーザーの数を返したいと思います。linq-to-sqlでカウントを返します
ユーザーテーブルには、UserID、username、dateJoinedがあります。
SELECT COUNT(USERID)
FROM Users
where dateJoined > @date
これはlinq-to-sqlでどのように見えますか?
キーワードCOUNTを使用できますか?
私はユーザーと呼ばれるIEnumberableリストとsomedateと呼ばれるいくつかの変数があると仮定しています。
int count = users
.Where<User>(i => i.dateJoined > someDate)
.Count<User>();
これは、SQL
に任意のIEnumberableリストだけではなく、LINQのに対して(from u in context.Users where u.dateJoined > date select u).Count()
に動作します次の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番目のものをお勧めしたいと思います。 –
Count()を1回呼び出すだけで2番目の例を実行できます。 int count = context.Users.Count(x => x.datJoined> date); –
最初のものは今のところうまく動作し、編集されたようには見えません。 – nasch
ただし、これは拡張メソッドを呼び出すだけであることに注意してください。実際にはLINQではありません(LINQはクエリの言語構文であり、LINQが使用する拡張メソッドを使用しているという意味です)。それには何も間違いありません。 –
"Where()"は必要ありません。ラムダ式を "Count()"に入れるだけです。 – Suncat2000