linq to entity不识别方法"System.String ToString()"
将班级id以字符串形式输入如:“1111,1112,1113”。
数据库里的id为int型,
在数据路里找到匹配的相应班级转换成列表。
在这里爆出问题:不识别方法"System.String ToString()",跪求大神提出解决方案。
public IEnumerable<Class1> FindClassesByIDs(string ids)
{
var r = from c in this.DbContext.Class1
where ids.IndexOf(c.Class1ID.ToString()) >= 0
select c;
return r.ToList();
}
方法1: 字符串数组转整形数组 然后用contains
string str=“1111,1112,1113”;
string[] strArray =str.Split(new char[]{ ',' });
int[] intArray;
intArray = Array.ConvertAll<string, int>(strArray, s => int.Parse(s));
var r = from c in this.DbContext.Class1
where c.Class1ID in intArray select c;
方法2: 同一种方法
var strids= ids.Split(',');
int []intids=new int[strids.Length];
for (int i = 0; i < strids.Length; i++)
{
intids[i] =int.Parse(strids[i]);
}
intids.contain(.......)