2011-07-14 8 views
1

私はsliverlightアプリケーションから 'WCF Data Service'で 'ADD.NET Entity Data Model'というWebサービスにlinqクエリを呼び出そうとしました。データベーステーブルと列をlinqに動的に割り当てる方法は?

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

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

しかし、私は、LINQクエリに別のテーブルやフィールド名を割り当てる動的必要があります。以下のLINQは、(事前に定義されたテーブル&フィールド名をe.g.using)取り組んでいます。何か方法はありますか? SQLコマンドを実行するには、WCFでメソッドを記述する必要がありますか?

ありがとうございました。

+0

ダイナミックなフィールドとテーブルは何に基づいていますか?ユーザー入力? xml? –

+0

異なるテーブルが異なる形の結果を返す場合、どのように結果を消費しますか?あなたのコードはどんなクラスでも処理できますか?あなたのサービスは静的です(つまり、すべての可能なテーブル/クラスが前面にあることを知っていますか)。 –

答えて

0

あなたはWHERE句での動的なフィールド名を提供するために、動的LINQのサンプルを使用することができます - 参照: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サービスからこれを提供する際には、セキュリティに注意する必要があります。