少なくとも1つを返す必要があることがわかっているのに、結果を返さないLINQクエリがあります。クエリを動的に構築しています。すべての結果をフィルターで除外する行に到達する直前に、デバッガーで結果セットを確認しました。この行には数百の行が含まれています。この行の後には、実際に少なくとも1つ含まれている必要があるときに0が含まれています。
query = query.Where(x =>
x.Lineages.FirstOrDefault().Sire.Contains(options.PedigreeContains));
この場合の「x」は「Horse」と呼ばれるエンティティを表します。'options.PedigreeContains'は単なる文字列値です。Lineagesテーブルは次のようになります。
ID HorseID Sire Dam etc...
デバッガーでHorseエンティティ(結果として返されるはずのエンティティ)をプルアップし、Lineagesプロパティを調べて、検索に一致するSire値を含めて完全に入力されていることを確認することもできます。したがって、私が使用しているLINQクエリに明らかに問題があることを除いて、すべてのSEEMSが機能しているはずです。
誰かが私がしていることに本質的に間違っているのを見ますか?それは私がそこにあるべきであると私が知っている結果をフィルターで取り除く原因になりますか?
編集:明確にするために、それは1対1の関係です。Lineagesオブジェクトが存在すること、1つしかないこと、そしてそれが一致することを知っています。なんらかの理由でゼロの結果が返されるので、クエリの記述方法に問題があるのではないかと思いました。そのクエリが記述されたとおりに機能する必要がある場合(系統が存在しない場合、複数の系統が存在する場合など、余分な「可能性」をすべて除く)、コードのどこかで問題になっているはずです。