我想创建一个linq to sql provider,允许我查询一个既未映射到datamodel也不知道的表。
我只知道一个表的别名,我用它来查询另一个已知的表进行翻译(从别名到真实表名),之后我将使用标准linq查询真实表,读取数据,并将每个结果放入动态对象中。
为了实现这一点,我想我需要定义一个自定义linq提供程序来操作表达式树,然后将标准linq调用到sql;但是现在我不知道怎么做。
所以我的目标是我会编写这样的代码:
List<dynamic> rows = form book in context.Book
where book.Author = "Author"
select book;
提前感谢任何建议。
答案 0 :(得分:0)
您可以使用Reflection
:
PropertyInfo table = typeof(ContextType).GetProperty(TableName);
from book in table.GetValue(Context)
...