所有者とクライアントの 2 つのテーブルがあり、1 対多の関連付けがあります。エンティティの学習を微調整しようとして、問題が発生しました。一日中、運が悪かったので、次の 2 つの同様のコード行が異なる値を返すことを推論しようとしました。
テストのみを目的としており、所有者ごとにクライアントを合計しようとしています。Owners エンティティには、Client オブジェクトのコレクションを返す Clients ナビゲーションがあります。結果に Owners エンティティを含めたいと思います。これには Clients エンティティが含まれます。
クライアントの総数を返すこれら 3 つの方法が異なる理由を知りたいです。1 番目と 2 番目はゼロのクライアントを返し、3 番目は正しい合計クライアント数を返します。
0 クライアントを返します:
Owner owner = context.Owners.First(o => o.ownerID == 5);
var clients = owner.Clients.Count();
-
Owner owner = context.Owners.Where(o => o.ownerID == 5).FirstOrDefault();
var clients = owner.Clients.Count();
正しいカウントを返します
var clients = context.Owners.Where(o => o.ownerID == 5).Select(o => o.Clients.Count()).FirstOrDefault();
なぜ物事がそんなに違うのか説明を見つけたいと思っています。
ありがとうございました