我尝试将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命令?
感谢您的帮助。
答案 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选项是使用CSharpCodeProvider
(http://support.microsoft.com/kb/304655)在运行时在运行时编译一些代码。但是,显然,从Web服务提供此功能时,您需要小心安全性。