車の履歴を含むデータベースがあります。各車の履歴には、複数の画像が関連付けられています。NHibernate 2.2を使用して関係を設定していますが、CarHistoryマッピングには画像用のバッグが含まれています。
<bag name="Photos" table="DetailPhoto" cascade="all" lazy="true">
<key column="CAR_DETAIL_ID"/>
<one-to-many class="DetailPhoto"/>
</bag>
JSONを使用してサーバーと通信するiPadアプリがあります。すべての車の履歴アイテムをiPadのリストにロードしたいのですが、データの取得が遅くなるため、リストをロードするときに写真を含めたくありません。そのため、写真を怠惰にしました。
JsonConvert.SerializeObjectを使用して車の履歴のリストをシリアル化しようとすると、遅延初期化例外が発生します。これは、オブジェクトをロードし、写真が不要でJsonSerializerがすべてのオブジェクトのプロパティ。
写真なしでJsonデータをクライアントに返したいのですが、他の状況でこのコレクションをロードしたいので、オブジェクトでignoreJsonPropertyを使用できません。
私はこれを試しましたが、それは私に怠惰な初期化例外を与える同じことをします: http ://www.royjacobs.org/2011/07/27/using-json-net-to-serialize-proxied-nhibernate-objects/
これは私のCarHistory(CarDetail)クラスです
public class CarDetail
{
[JsonProperty("id")]
public virtual int Id { get; set; }
[JsonProperty("carId")]
public virtual int CarId { get; set; }
[JsonProperty("date")]
public virtual DateTime ? Date { get; set; }
[JsonProperty("details")]
public virtual string Details { get; set; }
[JsonProperty("photos")]
public virtual IList<DetailPhoto> Photos { get; set; }
}
だから私の質問は、ある状況では関連する写真なしでCarHistoriesのリストを取得するにはどうすればよいですか?