私はコードを持っている:私はPredicateBuilder.True<Value>()
を持っている場合はPredicateBuilder <True>とPredicateBuilder <False>の違いは?
var predicate = PredicateBuilder.True<Value>();
predicate = predicate.And(x => x.value1 == "1");
predicate = predicate.And(x => x.value2 == "2");
var vals = Value.AsExpandable().Where(predicate).ToList();
を、それは私が何を期待思い出させるが、私はPredicateBuilder.False<Value>()
を持っている場合、それが戻って0レコードをもたらします。誰かが違いが何であるかを説明することができます。なぜなら、1つのシナリオでは、0のレコードをもう1つのレコードに戻すのは、私が期待するものを得るためです。私は既にPredicateBuilder
の文書を読んでいましたが、ちょっと混乱しました。私はそれが私がAnding
の述語であるという事実と関係していると感じていますか?
そのクラスに関するドキュメントは見つかりませんでしたが、あなたの呼び出しが 'true &&(x.value1 ==" 1 ")&&(xと同等の式を作成すると仮定します。value2 == "2") '、これはあなたのアイテムに応じて評価されるかもしれないし、評価されないかもしれません(したがって、あなたは何を期待しています。一方、 'false'から始めると、' false'という結果が 'false'になるので、式は* never *' true'に評価されます。したがって、述語式はすべての項目に対して 'false'を返し、結果は返されません。 –
@ O.R.Mapper - ありがとう。ここにドキュメントがあります:http://www.albahari.com/nutshell/predicatebuilder.aspx – Xaisoft
http://stackoverflow.com/questions/15325245/linqkit-predicatebuilder-returns-all-or-non-rows – mirtiger