2013-03-05 17 views
9

Belirli ilaç adlarını aradığım bir ilaç tablom var, ancak birden çok ad aramak zorundayım. Şu an burada olduğum yer.Yapmak için Linq kullanma a İçindekiler Birden çok değer içeren

string[] names = new string[2]; 
names[0] = "apixaban"; 
names[1] = "desirudin"; 

var meds = (from m in Medications where names.Any(m.BrandName.Contains) || names.Any(m.GenericName.Contains) select m); 

Neler yapmam ama şu anda takılıyorum. Yakın olduğumu biliyorum ama neyin yanlış olduğunu anlayamıyorum. Açıklık getirmek için

DÜZENLEME

, ben desirudin olduğu Arıyorum adı, ardından markası veya Genel adınız olacak, bu yüzden veritabanında sahada içeren olması varsa.

EDIT 2 İşte aldığım hata.

var meds = Medications.Where(m => names.Contains(m.BrandName) || names.Contains(m.GenericName)); 
+0

birini alırsanız hata mesajı gönderebilir veya gerçeği Lütfen Bu sonuçları dönmeden çalıştığını –

+0

Sen bir lambda kullanmak gerekir Benim cevabımda olduğu gibi Any() 'yöntemi. –

cevap

17

Belki

var meds = (from m in Medications 
      where names.Any(name => name.Equals(m.BrandName) || m.GenericName.Contains(name)) 
      select m); 
+0

Sorunu daha iyi açıklamak için güncelledim. – Jhorra

+0

@Jhorra, sorgunuz o zaman iyi görünüyor. Bazı örnek veriler sağlayabilir misiniz? Ve sorgunuzla tam olarak ne çalışmıyor? – aush

+0

Cevabımı güncellediğimi düşündüğümle güncelledim –

0

ile sona erdi budur ilaç tablosu ve isimler dizisi arasına katılın.

var query = from m in Medications 
      from n in in names 
      where m.BrandNames.Any(bn => bn.Contains(n)) || m.GenericNames.Any(gn => gn.Contains(n)) 
      select m; 
+0

Sorunu daha iyi açıklamak için güncelledim. – Jhorra

0

Sadece bir yaptığım gibi Somthing: Burada

Unsupported overload used for query operator 'Any'. 

Ben hakkınızı anlaşılan ettiyseniz nihayet

var meds = (from m in db.AdmissionMedications where 
(names.Any(n => m.BrandName.Contains(n)) || names.Any(n => m.GenericName.Contains(n)) 
) select m); 
2

Sana denemek istiyorum düşünüyorum:

var query = Medications.Where(m => names.Contains(m.BrandName) || names.Contains(m.GenericName)); 
0
var x = (from c in Reports where c.HKPlanningQty == xi select c).Select(u=>new {Style=u.Style,QTN=u.HKPlanningQty}).OrderBy(u =>u.Style).Where(v=>v.Style.Contains("44")||v.Style.Contains("58")); 
İlgili konular