LINQ语法中的动态Where子句错误

时间:2018-08-28 09:41:09

标签: c# entity-framework linq linq-to-entities

我正在尝试在LINQ语句中构建动态WHERE子句,但是遇到了一些问题。

目前,我有以下内容:-

string[] types = typeId[0].Split(','); //contains string array like {"1,2,3"}
marketing = marketing.Where( type => types.Contains(type.TypeID)).ToList();

有人可以告诉我实现此目的的正确语法吗?

谢谢

1 个答案:

答案 0 :(得分:1)

从您的错误消息中,type.TypeIDint

因此,您基本上有2个选择:

选项1:将types转换为int[]

int[] types = typeId[0].Split(',').Select(id => int.Parse(id)).ToArray();
marketing = marketing.Where( type => types.Contains(type.TypeID)).ToList();

选项2:将type.TypeID转换为string

string[] types = typeId[0].Split(',');
marketing = marketing.Where( type => types.Contains(type.TypeID.ToString())).ToList();