2009-01-12 19 views
7

3-4 İfade'den daha fazla olan bir sorgu oluşturmak istiyorum.Or? Ama İfade. Veya sadece içinde iki İfadeyi eklememe izin verin.Expression'da 2'den fazla ifade nasıl ayarlanır? Veya

if (!string.IsNullOrEmpty(keyword)) 
       query 
        .Add(Expression.Or(
          Expression.Like("Name", keyword, MatchMode.Anywhere), 
          Expression.Like("LastName", keyword, MatchMode.Anywhere))) 
        .Add(Expression.Or(
          Expression.Like("Email1", keyword, MatchMode.Anywhere), 
          Expression.Like("Email2", keyword, MatchMode.Anywhere))); 

Yukarıdaki kod bu% gibi% Bu%% gibi VE posta1 bu ve% Email2 gibi adı% gibi bu veya% Soyadı" üretir.

Teşekkür peşin.

+0

bir süre b bulundu aşağıdaki şey Entity Framework için ack, aynı kod nHibernate ile çalışır: http://stackoverflow.com/questions/1554663/composing-linq-to-entity-query-from-multiple-parameters/1554759#1554759 –

+0

@Alexandre: çözümünüz bir LINQ sağlayıcısı içindir. Bu soru NHibernate Kriter API'sı ile ilgili. –

cevap

8

Kullanımı yerine Or Disjunction.

+0

Çok teşekkür ederim, Başka bir sorum var. Bunu sorgularken başka bir tabloyu sorgulamak istiyorum. Forexample, id = Group.CustomerId –

+0

olan Müşteriler almak istiyorum Lütfen bunun için başka bir soru oluşturun, bununla ilgili değil. –

+0

Bu linkten bozuk –

2

Ayrıca Or() veya ayrım() yerine || kullanabilirsiniz.