Ben kod var: Ben PredicateBuilder.True<Value>()
varsaPredicateBuilder <True> ve PredicateBuilder <False> arasındaki fark nedir?
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();
, ben beklediğiniz geri getiriyor ama PredicateBuilder.False<Value>()
varsa, geri 0 kayıtları getirir. Birisi farkın ne olduğunu açıklayabilir mi ve neden bir senaryoda geri döndüğümde bir senaryoda diğeri beklediğimi elde ederim. Zaten PredicateBuilder
belgesini okudum, ama biraz kafa karıştırıcıydı. Ben Anding
yüklemlerinin birlikte olduğum gerçeğiyle ilgili bir his var mı?
Bu sınıfa ilişkin bir belge bulamıyorum, ancak aramalarınızın 'true && (x.value1 ==" 1 ") && (x.item2 == "2") ', öğelerinize bağlı olarak 'true' olarak değerlendirilebilecek veya olmayabilir (dolayısıyla ne bekliyorsunuz?). Eğer 'false' den başlarsanız, öte yandan, ifade, hiçbir zaman "true" olarak değerlendiremez, çünkü "false" ve "false" ile sonuçlanır. Bu nedenle, yüklem ifadesi tüm öğeler için 'false' değerini döndürür ve sonuçlara geri dönmezsiniz. –
@ O.R.Mapper - Teşekkürler. İşte belgeler: http://www.albahari.com/nutshell/predicatebuilder.aspx – Xaisoft
http://stackoverflow.com/questions/15325245/linqkit-predicatebuilder-returns-all-or-non-rows – mirtiger