2011-02-08 15 views
1

S#arp Architectureの場合、エンティティと1対多の関係を持つ(たとえば)Dogエンティティがある場合、追加時にコレクションを同期させておくオブジェクトなど?S#arpアーキテクチャ:親子関係の管理

つまり、Dog.Tricksコレクションがあり、新しいTrickを追加したい場合、ベストプラクティスは何ですか?

一般に、NHibernateのアプローチは、(NHibernateがバインドする)変更可能なIEnumberableコレクションを隠すことであるようです。このテクニックの議論については、この質問を参照してください:Best practice for Handling NHibernate parent-child collections。これは、dog.AddTrick()メソッドを使用してトリックを追加する方法が1つしかないことを確実にし、コレクションを同期させておくのに便利なようです。

しかし、Sの#のARPが流暢使用しているので(私が何かを見逃していない限り?)、このアプローチは、実装が容易ではないようだ

のでいただきましS番号のARPのための同等のベストプラクティス?

答えて

2

S#でもコレクションを同期させるのがベストプラクティスです。プライベートフィールドをマッピングするためのFluent NHibernateを見てください。 Dogエンティティのマッピングオーバーライドを作成する必要があります。このオーバーライドは、収集されたトリックがキャメルケースフィールドによってアクセスされると言うでしょう。

http://wiki.fluentnhibernate.org/Mapping_a_collection_that_uses_a_private_backing_field

+0

OKです。そして、 'trick.Dog'プロパティ(子から親に向ける)は、' protected internal set'が最善の方法ですか? (それは 'dog.AddTrick()'メソッドの間だけセットされるように) – codeulike

+0

正直言って、それはいずれの方法にも行くことができます。私は保護内部を使用することを好むが、シナリオに応じて両方の方法を行った。 – Alec

関連する問題