0

WCF サービスを指すサービス参照があります。これは、データ アクセス ロジックが処理されるモデル レイヤーへのプロキシとして機能します。内部では、データベース通信を容易にする ORM として Linq2Sql を使用しています。

生成されたクラスをデータ アクセス レイヤーとして使用しますが、返されるのは実際には POCO にすぎないダム DTO オブジェクトです。やりたいことは2つ)

1) カスタムタイプとそれに関連するプロパティに関して、サービス参照を通じてクライアントで利用できるものを制御します。これは、ダウンするクラスのサイズを縮小するためです。

2)Linq2Sqlが実際に生成されたすべてのクラスを装飾していることは知っていますが、これらのクラスがサービス参照を通過することを望んでいません。

現在、クラスを入力パラメーターの戻り値の型として使用すると、シリアル化されます。利用可能なプロパティを制限したい場合を除いて、これで問題ありません

考え?

4

2 に答える 2

0

だから私はこれを見つけました。基本的に、サービス参照を作成すると、何らかの方法で使用される型のみがシリアル化されます。デフォルトでは、DataContract が存在しない場合、すべてがシリアル化されます。

DataContract が存在する場合、DataMember で装飾されたプロパティが検索され、それらのみがシリアル化されます。トリッキー

于 2010-03-03T20:27:27.623 に答える
0

Linq から SQL オブジェクトに抽象化されたサービス境界を DTO が通過するようにしたいとお考えですか?

その場合は、DTO を定義し (オブジェクトが多数ある場合は、適切な T4 テンプレートを作成または検索してください)、AutoMapper を使用して DTO と Linq to SQL オブジェクトの間を行き来することをお勧めします。

于 2010-03-04T01:32:16.947 に答える