gpt4 book ai didi

c# - NHibernate ISet 与 IList

转载 作者:可可西里 更新时间:2023-11-01 07:53:41 27 4
gpt4 key购买 nike

在大多数 NHiberate 示例中,他们使用 ISET 而不是 IList。我知道两者之间的基本区别 一个集合是唯一的。但是,我不确定为什么他们在延迟加载时使用 ISet 而不是 IList。

(Iesi.Collections.Generic)ISet 相对于 IList 有什么优势?延迟加载时的特殊性。

最佳答案

我相信这主要是由于 NHibernate 的 java 继承。

参见 the FAQ entry on persistent collections .特别提到 Java 默认情况下如何包含比 C# 更多的集合,并且它们特别映射到 ISet。

我相信大多数示例使用它的原因主要是因为这在 Java 中更常见,并且示例是从 Java 移植的。 (一些示例使用 set 而不是真正需要它是一个集合......)

话虽如此,集合与列表之间存在明显差异。行为不同,因此在某些用例中集合的行为更合适。对于延迟加载,这允许您减少对加载顺序的限制,因此您可以潜在地加载更少的信息并保持接口(interface)契约就位。

关于c# - NHibernate ISet 与 IList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/671575/

27 4 0