Ho una tabella dei farmaci che sto cercando per alcuni nomi di farmaci, ma ho bisogno di cercare più nomi. Qui è dove sono attualmente con esso.Uso di Linq per fare un Contiene più valori
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);
Quello che ho non funziona, e sono attualmente bloccato. So di essere vicino, ma non riesco a capire cosa c'è che non va.
EDIT
Per chiarimenti, se il nome che sto cercando è desirudina, quindi il marchio o il nome generico sarà più lungo, in modo da avere il contiene sul campo nel database.
MODIFICA 2 Ecco l'errore che ricevo.
Unsupported overload used for query operator 'Any'.
Ecco quello che ho finalmente finito con
var meds = (from m in db.AdmissionMedications where
(names.Any(n => m.BrandName.Contains(n)) || names.Any(n => m.GenericName.Contains(n))
) select m);
Si prega di inviare il messaggio di errore se si ottiene uno, o il fatto che venga eseguito senza restituire risultati –
È necessario utilizzare un lambda in il metodo 'Any()', come nella mia risposta. –