2011-02-08 29 views
1

因此,与S#arp Architecture,如果你有一个(比如说)Dog的实体,而与Trick实体一个一对多的关系,你怎么保持同步收集加入时对象等?小号#ARP架构:管理父子关系

也就是说,如果有一个Dog.Tricks集合,并且您想要添加新的Trick,那么最佳做法是什么?

一般来说,NHibernate的方法似乎是隐藏可变的Tricks集合(NHibernate绑定到)并显示不可变的IEnumberable集合。看到这个问题的技术讨论:Best practice for Handling NHibernate parent-child collections。这似乎是一个很好的方法,可以确保只有一种方法来添加技巧 - 通过dog.AddTrick()方法 - 并保持集合同步。

但似乎由于S2#ARP使用流​​利,这种做法是不那么容易实现(除非我错过了什么?)

因此,whats对于s#ARP相当于最佳做法?

回答

2

这是让您的集合在S#中同步的最佳实践。查看Fluent NHibernate来映射私有字段。您需要为您的Dog实体创建一个映射覆盖。这种重写会说技巧收集是由camelcase字段访问的。

http://wiki.fluentnhibernate.org/Mapping_a_collection_that_uses_a_private_backing_field

+0

好的。而对于`trick.Dog`属性(从孩子指向父母)是一个“受保护的内部集合”的最佳途径? (所以它只会在`dog.AddTrick()`方法期间被设置) – codeulike 2011-02-09 18:47:20