0

たとえば、RIA サービスを介してデータベースにクエリを実行すると...

OrderWorkflowSLWCFRIA.Web.OrderWorkflowDomainContext db
   = new OrderWorkflowSLWCFRIA.Web.OrderWorkflowDomainContext();

db.Load(db.getWorkflowbyNameQuery(strCurrentLineText, intCustomerId)
     .Where(Workflow => Workflow.UserSelectable == true), load => { }, null);

...パラメータを基礎となるドメインサービスに渡すことと、ドメインサービス側でwhereおよびorderbyサブクエリを実行することと、クライアント側でそれらを指定することとの間に違いはありますか? クライアントでサブクエリを実行すると、サブクエリを実行する前にクライアント側ですべてのデータが読み込まれるという前提の下で、ドメイン サービス側で実行する必要があると常に考えていましたが、 subquery は実際にドメイン サービスに渡されます。これは本当ですか?

4

1 に答える 1

1

「サブクエリ」という用語で、Where 句と OrderBy 句を意図していると思います。はい、通常はそうです。クライアント側をフィルタリングすると、通常サーバーがすべてを返すようになり、クライアント側でフィルタリング/順序付けされますが、WCF Ria サービスの主な目標の 1 つは、フィルタリング、順序付け、およびフィルタリングを定義できるようにすることです。クライアント側でグループ化してから、サーバー側で実行します。

基本的に、クライアントとサーバーの間には、回線を介して LINQ 式を「シリアル化」し、サーバー側で「逆シリアル化」するコードがあります。

この文脈では「シリアライズ」と「デシリアライズ」という用語は正しくないことに注意してください。また、このプロセスには実装されていないものがあることに注意してください。たとえば、Any() のようなネストされた条件を使用してドメイン サービスを照会することはできません。

于 2013-05-10T15:55:53.937 に答える