C# 使用System.Linq.Dynamic,需要将动态查询/表的结果作为IEnumerable获取
我需要根据参数kwdType从各种关键字表中选择记录。我尝试使用动态linq根据switch语句和动态查询设置表类型,而不是重复代码行。我找不到任何方法来得到可计算的结果。我需要将这些结果发送到另一个只接受IEnumerable的函数。请给我小费C# 使用System.Linq.Dynamic,需要将动态查询/表的结果作为IEnumerable获取,c#,linq,C#,Linq,我需要根据参数kwdType从各种关键字表中选择记录。我尝试使用动态linq根据switch语句和动态查询设置表类型,而不是重复代码行。我找不到任何方法来得到可计算的结果。我需要将这些结果发送到另一个只接受IEnumerable的函数。请给我小费 Type returnType = null; switch (kwdType.ToLower()) { case "class1": return
Type returnType = null;
switch (kwdType.ToLower())
{
case "class1":
returnType = typeof(TblClass1);
break;
case "class2":
returnType = typeof(TblClass2);
break;
case "class3":
returnType = typeof(TblClass3);
break;
}
//I need to get the results as IEnumerable
MYDB.Set(returnType).AsQueryable().Where("Active=@0", "Y")
return new PagedResponse<returnType>(MYDB.Set(returnType).AsQueryable().Where("Active=@0", "Y"), pageIndex, pageSize);
Type returnType=null;
开关(kwdType.ToLower())
{
案例“1类”:
returnType=typeof(TblClass1);
打破
案例“类别2”:
returnType=typeof(TblClass2);
打破
“第3类”案件:
returnType=类型(TblClass3);
打破
}
//我需要得到一个可计算的结果
MYDB.Set(returnType).AsQueryable().Where(“Active=@0”,“Y”)
返回新的PagedResponse(MYDB.Set(returnType).AsQueryable(),其中(“Active=@0”,“Y”)、pageIndex、pageSize);
这里是错误
无法从system.linq.iqueryable转换为system.collections.generic.IEnumerable我认为您必须在最后一行代码末尾添加类似于
.ToArray()
或.ToList()
的内容才能获得所需的内容。MYDB的类型是什么?仅供参考:iqueryable
=>数据库查询,IEnumerable
=>内存查询。在代码中,您从未在数据库上执行过查询。它是从DbContext扩展而来的类型