人口統計データを格納するPopulationという表があるとします。 T-SQLでは、50人以上のカウントを取得するために、私はこのような何かを行う可能性があります: Countを実行すると、Linqはすべてのレコードを最初に取得しますか?
SELECT COUNT(*) FROM POPULATION
WHERE AGE > 50
は、私は次のLINQ文が働くだろうと思ったが、それは単にゼロを返し、私はその理由を理解していません。
var count = _context.Population.Count(x => x.Age > 50);
私が実際にカウントを取得するためには、私は次のいずれかを実行する必要があります。
var count = _context.Populaton.Where(x => x.Age > 50).Count();
var count = _context.Population.Select(x => x.Age > 50).Count();
なぜ上記のシナリオはケースですか?
除外する実装の詳細はありますか? context.TableName.Count(x => x.SomeCondition);私のためにうまく動作します。 – jeffora
最初のLINQステートメント*は最後の2つと同じように*動作するはずです。それはプロバイダの問題のように思えます。どのLINQプロバイダを使用していますか? – Greg
この質問に対して選択した回答は間違っていて、無関係です。他に何か起こっていることがあります。おそらく、使用しているクエリプロバイダがあります。 – jason