C#Linq over动态表

时间:2014-10-18 23:09:28

标签: c# linq dynamic custom-linq-providers

我想创建一个linq to sql provider,允许我查询一个既未映射到datamodel也不知道的表。

我只知道一个表的别名,我用它来查询另一个已知的表进行翻译(从别名到真实表名),之后我将使用标准linq查询真实表,读取数据,并将每个结果放入动态对象中。

为了实现这一点,我想我需要定义一个自定义linq提供程序来操作表达式树,然后将标准linq调用到sql;但是现在我不知道怎么做。

所以我的目标是我会编写这样的代码:

 List<dynamic> rows = form book in context.Book
                      where book.Author = "Author"
                      select book;

提前感谢任何建议。

1 个答案:

答案 0 :(得分:0)

您可以使用Reflection

PropertyInfo table = typeof(ContextType).GetProperty(TableName);

from book in table.GetValue(Context)
...