C# S#arp体系结构:管理父子关系
因此,如果您有一个(比如)与C# S#arp体系结构:管理父子关系,c#,fluent-nhibernate,parent-child,s#arp-architecture,C#,Fluent Nhibernate,Parent Child,S#arp Architecture,因此,如果您有一个(比如)与技巧实体有一对多关系的狗实体,那么在添加对象等时如何保持集合的同步 也就是说,如果有一个Dog.Tricks集合,并且您想添加一个新的Trick,那么最佳做法是什么 通常,使用NHibernate的方法似乎是隐藏可变的技巧集合(NHibernate绑定到的)并显示一个不可变的IEnumberable集合。有关技术的讨论,请参见此问题:。这似乎是一种很好的方法,可以确保只有一种方法可以添加技巧—通过dog.AddTrick()方法—并保持集合的同步 但似乎因为S#arp
技巧实体有一对多关系的狗实体,那么在添加对象等时如何保持集合的同步
也就是说,如果有一个Dog.Tricks
集合,并且您想添加一个新的Trick
,那么最佳做法是什么
通常,使用NHibernate的方法似乎是隐藏可变的技巧集合(NHibernate绑定到的)并显示一个不可变的IEnumberable集合。有关技术的讨论,请参见此问题:。这似乎是一种很好的方法,可以确保只有一种方法可以添加技巧—通过dog.AddTrick()
方法—并保持集合的同步
但似乎因为S#arp使用Fluent,所以这种方法不太容易实现(除非我错过了什么?)
那么S#arp的最佳实践是什么呢?这也是在S#中保持收藏同步的最佳实践。查看Fluent NHibernate以映射私有字段。您需要为您的Dog实体创建映射覆盖。此覆盖将表示tricks collect由camelcase字段访问
好的。对于trick.Dog
属性(从子对象指向父对象)来说,受保护的内部设置是最好的方法吗?(因此它只能在dog.AddTrick()
方法中设置)老实说,这两种方法都可以。我更喜欢使用受保护的内部模式,但根据场景的不同,我采用了两种方式。