関連オブジェクトの ICollection を使用して POCO クラスをセットアップしました。それらは WCF サービスにあるため、DataContract/DataMember で装飾しました。関連するオブジェクトには仮想プロパティを使用しません。これは、シリアル化されないプロキシを作成するためです (「基になる接続が閉じられました」という一見無関係なメッセージが表示されますが、仮想修飾子を削除すると、それは消えます)。
私が理解に苦しんでいるのは、関連オブジェクトのコレクションを遅延ロードする方法です。POCOはコンテキストにアクセスできないため、自分でそれを行うことはできないと思います.
たとえばCompany
、プロパティを持つクラスがありICollection<Principals>
ます。私は通常、会社を取得するときにすべてのプリンシパルをロードしたくはありませんが、Company.Principals
それらを取得するための参照が必要です。明らかに、Company
それだけではそれを行うことはできません。
(1) POCO オブジェクト、(2) 典型的な WCF シリアル化、および (3) 遅延読み込み関連プロパティを持ちたいという欲求を組み合わせるために、人々は何をしていますか?