在NHibernate中,处理只读列表的最佳实践是使用IList
或IReadOnlyList
接口。这样可以确保列表在应用程序中是只读的,避免意外的修改。
在映射中,可以使用<list>
元素来定义只读列表。例如:
<id name="Id">
<generator class="identity" />
</id>
<property name="Name" />
<list name="Children" table="Children" cascade="all">
<key column="ParentId" />
<index column="Position" />
<one-to-many class="Child" />
</list>
</class>
在这个例子中,Parent
类有一个Children
属性,它是一个只读列表。<list>
元素定义了列表的映射,包括关联的表、关联的列、关联的类等。
在代码中,可以使用IReadOnlyList<T>
接口来定义只读列表。例如:
public class Parent
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual IReadOnlyList<Child> Children { get; set; }
}
在这个例子中,Parent
类有一个Children
属性,它是一个只读列表,类型为IReadOnlyList<Child>
。这样可以确保在应用程序中,不能修改这个列表。
总之,在NHibernate中处理只读列表的最佳实践是使用IList
或IReadOnlyList
接口,以及<list>
元素进行映射。这样可以确保列表在应用程序中是只读的,避免意外的修改。
领取专属 10元无门槛券
手把手带您无忧上云