使用动态表名运行LINQ查询

时间:2016-10-06 07:41:59

标签: c# linq

我尝试运行LINQ查询。正如您从下面的代码中看到的那样,我尝试将表命名为" TableName")然后将其传递给LINQ,当然LINQ找不到名为" TableName&#的表34 ;.如何做到这一点的任何其他方式?我试过ctxdata。(TableName)但是没有用。

let arr = [[1,2,3],[4,5,6],[7,8,9]]
print(arr.transpose)
// [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

我仍然是C#的新手,非常感谢您能根据此代码向我展示示例。

1 个答案:

答案 0 :(得分:0)

您可以使用Set方法从数据上下文中获取表格,但您需要使用类型的通用参数Set<T>()Type变量Set(Type type)等元素。所以你需要找到一些方法来获取表名的类型。如果您有类型名称,则可以从程序集ctxdata.GetType().Assembly.GetType("TypeName")按名称输入。

使用反射,您可以从数据上下文获取表属性,如下所示:

var table = ctxdata.GetType().GetProperty(TableName).GetValue(ctxdata) as IQueryable;