ドメインAとBに2つのオブジェクトがあります
オブジェクトAにはBのプロパティがありますオブジェクトBにはlistのプロパティがあります
Bのdbをヒットすると、Asのリストが返されますが、各AにはBがあり、BにはAsのリストがあります。何度も何度も。
明らかに遅延読み込みの問題。遅延読み込みがオンになっていますが、これがWCFサービスであるという問題があります。すべてのドメインオブジェクトをdtoオブジェクトに変換してネットワークに送信する必要がありますか?そうすると、次のようになります-疑似コード
ADTO adto Transform(ADomain a)
{
adto.name = a.name;
adto.surname = a.surname;
adto.B = Transform(a.B);
}
BDTO bdto Transform(BDomain b)
{
bdto.bob = b.bob;
foreach (A a in b.As)
{
bdto.bs.add(Transform(a));
}
}
では、コレクションのフェッチを1レイヤーだけ深くするにはどうすればよいですか。
Bのマッピング:
HasMany(x => x.As)
.Cascade.AllDeleteOrphan()
.Fetch.Select()
.Inverse().KeyColumn("AId");
Aのマッピング:
References(x => x.B).Column("AId");