Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Fluent nhibernate 流畅的NHibernate映射为行李还是列表?有什么区别?_Fluent Nhibernate - Fatal编程技术网

Fluent nhibernate 流畅的NHibernate映射为行李还是列表?有什么区别?

Fluent nhibernate 流畅的NHibernate映射为行李还是列表?有什么区别?,fluent-nhibernate,Fluent Nhibernate,映射到需要由父实体管理的实体列表的最佳实践是什么?我发现的所有示例都使用IList,这就是我在代码中使用的 我认为这个包可能是原始Java Hibernate的遗留物——我隐约记得读过一篇这样的帖子 区别在于语义: 当集合无序且每个项只能包含一次时,应使用集合 然而,一个包仍然是无序的——它可以多次很好地包含某些项目——至少有多对多映射 列表是一个按顺序排列的集合,可以多次包含某些项目-您可以保证,项目将按保存时的相同顺序检索。NHibernate将为您管理指定的索引列 然而,包和列表都可以用I

映射到需要由父实体管理的实体列表的最佳实践是什么?

我发现的所有示例都使用IList,这就是我在代码中使用的


我认为这个包可能是原始Java Hibernate的遗留物——我隐约记得读过一篇这样的帖子

区别在于语义:

当集合无序且每个项只能包含一次时,应使用集合 然而,一个包仍然是无序的——它可以多次很好地包含某些项目——至少有多对多映射 列表是一个按顺序排列的集合,可以多次包含某些项目-您可以保证,项目将按保存时的相同顺序检索。NHibernate将为您管理指定的索引列 然而,包和列表都可以用IList在代码中表示——这很好,但您必须记住,您不能依赖包中项目的顺序

在选择如何映射列表时,请选择与您的收藏最匹配的选项-如果您不需要订购,请选择“袋子”,如果您需要订购,请选择“列表”

旁注:可以控制包中项目的顺序-您必须使用适当的sql表达式按属性指定顺序。但是,不要使用它来模拟列表行为-直接使用列表。当订单是某些其他属性的结果时,如根据上次修改的时间戳对实体进行排序,则应使用行李的属性排序