我有一个药物表,我正在寻找某些药物名称,但我需要搜索多个名称。这就是我目前所处的位置。
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);
我所拥有的不起作用,我目前陷入困境。我知道我已经很接近了,但我不太明白出了什么问题。
EDIT
为了澄清起见,如果我要搜索的名称是 desirudin,那么品牌名称或通用名称会更长,因此我必须在数据库中的字段中包含包含内容。
EDIT 2这是我收到的错误。
Unsupported overload used for query operator 'Any'.
这就是我最终得到的结果
var meds = (from m in db.AdmissionMedications where
(names.Any(n => m.BrandName.Contains(n)) || names.Any(n => m.GenericName.Contains(n))
) select m);
也许像
C# Linq:
var meds = (from m in Medications
where names.Any(name => name.Equals(m.BrandName) || m.GenericName.Contains(name))
select m);
扩展方法:
List<Medication> meds = Medications
.Where( med =>
names.Any( name =>
name.Equals( med.BrandName ) || med.GenericName.Contains( name )
)
)
.ToList();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)