S#arp架构:管理亲子关系

时间:2011-02-08 13:53:03

标签: c# fluent-nhibernate parent-child s#arp-architecture

使用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的等效最佳实践是什么?

1 个答案:

答案 0 :(得分:2)

这也是保持您的馆藏在S#中同步的最佳做法。查看Fluent NHibernate以映射私有字段。您需要为Dog实体创建映射覆盖。这种覆盖会说,技巧收集是由camelcase字段访问的。

http://wiki.fluentnhibernate.org/Mapping_a_collection_that_uses_a_private_backing_field