2013-03-05 41 views
2

我有Section类有ContentItem s列表。 ContentItem有许多子类,如TextContentItem,ImageContentItem等。所有这些子类都映射到数据库(使用类和子类映射)。如何根据确切的子类加载类?

我需要找回Section实例与人口确切的子类的实例ContentItem的能力。

回答

1

使用IEnumerable<T>扩展方法OfType<T>过滤收集:

var filter = section.ContentItems.OfType<TextContentItem>(); 

如果你的收藏是非常大的,你要避免加载所有内容项,那么我会填充数据传输对象(DTO )由Section类和所需内容项的集合组成。我不会建议部分加载域模型中的集合。