【发布时间】:2013-02-20 13:17:59
【问题描述】:
我有一个药物表,我正在寻找某些药物名称,但我需要搜索多个名称。这是我目前使用它的地方。
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);
我所拥有的东西不起作用,我目前陷入困境。我知道我已经很接近了,但我不知道出了什么问题。
编辑
为了澄清,如果我要搜索的名称是 desirudin,那么 BrandName 或 Generic 名称会更长,所以我必须在数据库中的字段上包含 contains。
编辑 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);
【问题讨论】:
-
如果您收到错误消息,或者它运行但没有返回结果的事实,请发布错误消息
-
您需要在
Any()方法中使用 lambda,就像我的回答一样。