如何解决我可以做一个EF语句Wherec => c.NameStr ==元素在list <string>中吗?
| 我想执行Where语句,但要检查字段成员是否匹配字符串列表中的项目,而不仅仅是字符串。我的实体是从数据库自动生成的,并存储在.edmx文件中。//selectedAgencys is a List<string>
List<v_MapCrimeData> list = ent.v_MapCrimeData
.Where(c => c.AgencyName == (element in list selectedAgencys));
解决方法
尝试
List<v_MapCrimeData> list = (from c in ent.v_MapCrimeData
from x in selectedAgencys
where x == c.AgencyName
select c).ToList();
, 您要查看列表是否包含该字段,因此可以使用Enumerable.Contains
nt.v_MapCrimeData.Where(c => selectedAgencys.Contains(c.AgencyName))
由于您指示您正在使用Linq to Entities,因此您可能想尝试加入。
List<v_MapCrimeData> list = v_MapCrimeData.Join(
selectedAgencies,c => c.AgencyName,//key selector for v_MapCrimeData
a => a,//key selected for selectedAgencies
(c,a) => c).ToList(); //result selector (i.e. return the v_MapCrimeData)
, 如果您需要忽略大小写,
nt.v_MapCrimeData.Where(c => selectedAgencys.Any(a => a.Equals (c.AgencyName,StringComparison.OrdinalIgnoreCase))
, 哪里(i => listocheckagainst.Contains(i.valuetoBeChecked))
编辑:花了很多时间签约SO,其他人回答了
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。