私は WCF が初めてで、何かを理解するのに助けが必要です。
サービスによってエンティティからマップされた DTO を返す WCF データ サービスを作成しました。私のサービス コントラクト インターフェイスには、 をGetMyDto
返すメソッドがありますIQueryable<MyDto>
。
MVC アプリでこのサービスへのサービス参照を追加しました。インターフェイスとプロキシ クライアントは、List<MyDto>
代わりに を返します (または、他のいくつかのコレクション タイプを選択できます) IQueryable<MyDto>
。
クライアントに公開できないことは理解IQueryable
していますが、クライアントでフィルタリングすると (つまりMyServiceClient.GetMyDto().Where(x => x.SomeValue == 1)
)、クライアントまたはサーバーでフィルタリングされますか?
私の理解では、odataを使用できますが、これについて私が目にするすべての例は、エンティティモデルをクライアントに直接公開していますが、これは行っていません。私はDTOを使用しています。
私の制限は何ですか?サービスを呼び出すときに何が起こっているのかを正確に理解するのに役立ちます。