如何动态地将数据库表和列分配给linq?

时间:2011-07-14 01:23:20

标签: wcf linq wcf-data-services

我尝试将linli查询从sliverlight应用程序调用到Web服务,即“ADD.NET实体数据模型”和“WCF数据服务”。下面的linq正在工作(例如使用预定义的表和字段名称):

        var query = from o in context.ORDER
                    where o.NUMBER == 1
                    select o;

        ((DataServiceQuery<ORDER>)query).BeginExecute(OnQueryComplete, query);    

但是我需要动态地为linq查询分配不同的表和字段名称。有什么办法吗?我是否需要在WCF中编写一个方法来执行任何sql命令?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用动态Linq示例在where子句中提供动态字段名称 - 请参阅:http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx

此外,您可以使用PredicateBuilder以类型安全的方式执行此操作 - http://www.albahari.com/nutshell/predicatebuilder.aspx

对于更多动态行为 - 包括动态表名 - 我能想到的唯一Linq选项是使用CSharpCodeProviderhttp://support.microsoft.com/kb/304655)在运行时在运行时编译一些代码。但是,显然,从Web服务提供此功能时,您需要小心安全性。