有没有办法使用Meta Tales或Table名称在LINQ中构建动态查询?
foreach (var metaTable in db.Mapping.GetTables())
{
var queryType = metaTable.RowType.Type;
var test = from q in db.GetTable(queryType)
select q;
}
有没有办法做这样的事情?上述尝试产生错误:
找不到源类型&System; System.Data.Linq.ITable'的查询模式的实现。 '选择'未找到。请考虑明确指定范围变量的类型' q'。
谢谢, 克里斯
答案 0 :(得分:3)
“长答案”是很多令人讨厌的表达式代码:你必须从头开始为你的查询构建表达式树,因为编译器只在所有内容都是强类型的情况下才会这样做。但是,如果您只想获取所有行,只需编写
即可var test = db.GetTable(queryType).Cast<object>();
因为ITable接口已经是IEnumerable。现在你仍然需要理解一系列无类型对象。
你能告诉我们你想做什么以及为什么?
答案 1 :(得分:1)
您是否包含对System.Data.Linq命名空间的引用?如果你错过了那么你可能会得到这个错误,因为我认为LINQ扩展方法来自于此。