使用S#arp Architecture,如果您有一个(例如)Dog
实体与Trick
实体有一对多的关系,那么如何让该集合保持同步添加对象等时?
也就是说,如果有Dog.Tricks
个集合,并且您想要添加新的Trick
,那么最佳做法是什么?
一般来说,NHibernate的方法似乎是隐藏可变Tricks
集合(NHibernate绑定)并显示一个不可变的IEnumberable集合。有关该技术的讨论,请参阅此问题:Best practice for Handling NHibernate parent-child collections。这似乎是一种很好的整洁方式,可以确保只有一种方法可以添加技巧 - 通过dog.AddTrick()
方法 - 并保持集合同步。
但似乎因为S#arp使用Fluent,这种方法实现起来并不容易(除非我错过了什么?)
那么S#arp的等效最佳实践是什么?
答案 0 :(得分:2)
这也是保持您的馆藏在S#中同步的最佳做法。查看Fluent NHibernate以映射私有字段。您需要为Dog实体创建映射覆盖。这种覆盖会说,技巧收集是由camelcase字段访问的。
http://wiki.fluentnhibernate.org/Mapping_a_collection_that_uses_a_private_backing_field