Fluent nhibernate 流畅的NHibernate映射为行李还是列表?有什么区别?
映射到需要由父实体管理的实体列表的最佳实践是什么?我发现的所有示例都使用IList,这就是我在代码中使用的Fluent nhibernate 流畅的NHibernate映射为行李还是列表?有什么区别?,fluent-nhibernate,Fluent Nhibernate,映射到需要由父实体管理的实体列表的最佳实践是什么?我发现的所有示例都使用IList,这就是我在代码中使用的 我认为这个包可能是原始Java Hibernate的遗留物——我隐约记得读过一篇这样的帖子 区别在于语义: 当集合无序且每个项只能包含一次时,应使用集合 然而,一个包仍然是无序的——它可以多次很好地包含某些项目——至少有多对多映射 列表是一个按顺序排列的集合,可以多次包含某些项目-您可以保证,项目将按保存时的相同顺序检索。NHibernate将为您管理指定的索引列 然而,包和列表都可以用I
我认为这个包可能是原始Java Hibernate的遗留物——我隐约记得读过一篇这样的帖子 区别在于语义: 当集合无序且每个项只能包含一次时,应使用集合 然而,一个包仍然是无序的——它可以多次很好地包含某些项目——至少有多对多映射 列表是一个按顺序排列的集合,可以多次包含某些项目-您可以保证,项目将按保存时的相同顺序检索。NHibernate将为您管理指定的索引列 然而,包和列表都可以用IList在代码中表示——这很好,但您必须记住,您不能依赖包中项目的顺序 在选择如何映射列表时,请选择与您的收藏最匹配的选项-如果您不需要订购,请选择“袋子”,如果您需要订购,请选择“列表” 旁注:可以控制包中项目的顺序-您必须使用适当的sql表达式按属性指定顺序。但是,不要使用它来模拟列表行为-直接使用列表。当订单是某些其他属性的结果时,如根据上次修改的时间戳对实体进行排序,则应使用行李的属性排序