Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我是否可以执行一个EF语句,其中(c=>;c.NameStr==(is-element-in-list<;string>;)?_C#_Entity Framework - Fatal编程技术网

C# 我是否可以执行一个EF语句,其中(c=>;c.NameStr==(is-element-in-list<;string>;)?

C# 我是否可以执行一个EF语句,其中(c=>;c.NameStr==(is-element-in-list<;string>;)?,c#,entity-framework,C#,Entity Framework,我想执行Where语句,但要检查字段成员是否匹配字符串列表中的项,而不仅仅是字符串。“我的实体”是从数据库自动生成的,并存储在.edmx文件中 //selectedAgencys is a List<string> List<v_MapCrimeData> list = ent.v_MapCrimeData .Where(c => c.AgencyName == (element in list se

我想执行Where语句,但要检查字段成员是否匹配字符串列表中的项,而不仅仅是字符串。“我的实体”是从数据库自动生成的,并存储在.edmx文件中

//selectedAgencys is a List<string> 

List<v_MapCrimeData> list = ent.v_MapCrimeData
                               .Where(c => c.AgencyName == (element in list selectedAgencys));
//selectedAgencys是一个列表
List List=ent.v_MapCrimeData
。其中(c=>c.AgencyName==(列表中的元素selectedAgencys));

您希望查看列表是否包含该字段,以便使用

nt.v\u MapCrimeData.Where(c=>selectedAgencys.Contains(c.AgencyName))

由于您表示正在使用Linq to实体,您可能希望尝试联接

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)
List List=v_MapCrimeData.Join(
选定的机构,
c=>c.AgencyName,//v_MapCrimeData的键选择器
a=>a,//为所选代理选择的键
(c,a)=>c.ToList()//结果选择器(即返回v_MapCrimeData)

如果需要忽略大小写

nt.v_MapCrimeData.Where(c => selectedAgencys.Any(a => a.Equals (c.AgencyName, StringComparison.OrdinalIgnoreCase)) 
.Where(i=>listocheckagainst.Contains(i.valuetoBeChecked))

编辑:花时间注册SO,其他人回答

试试看

List<v_MapCrimeData> list = (from c in ent.v_MapCrimeData 
                            from x in selectedAgencys 
                            where x == c.AgencyName 
                            select c).ToList();
List List=(来自ent.v_MapCrimeData中的c)
从选定代理中的x开始
其中x==c.AgencyName
选择c.ToList();

LINQ to Entities无法识别“Boolean Contains(System.String)”方法,此方法无法转换为存储表达式。尝试了以下操作:List List=ent.v_MapCrimeData.Where(c=>selectedAgencys.Contains(c.AgencyName)).ToList();哦Linq到实体是另外一回事。选择哪种类型的代理?可能您需要加入。可以始终执行nt.v_MapCrimeData.ToList()。其中(c=>selectedAgencys.Contains(c.AgencyName)),以避免无法转换为store express(尽管这可能会导致其他问题)无法创建“Closure type”类型的常量值。在此上下文中仅支持基本类型(“如Int32、String和Guid”)。尝试了以下操作:List list1=ent.v_MapCrimeData.Where(c=>selectedAgencys.Any(a=>a.Equals(c.AgencyName,StringComparison.OrdinalIgnoreCase))).ToList();