2011-07-14 35 views
1

我試圖從sliverlight應用程序調用linq查詢到'WCF數據服務'的'ADD.NET實體數據模型'的Web服務。 LINQ的下面是工作(e.g.using預先定義的表&字段名):如何動態分配數據庫表和列到linq?

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

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

但我需要動態分配不同的表和字段名LINQ查詢。有什麼辦法嗎?我需要在WCF中編寫一個方法來執行任何sql命令嗎?

感謝您的任何幫助。

+0

什麼是基於動態字段和表?用戶輸入? XML? –

+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服務提供這個時需要小心安全。