我有 ActivityDefinitions 的(遗留)系统,可以通过 ActivityCategory 进行分类,但这不是必需的。因此,可以在没有任何 ActivityCategory 的情况下拥有 ActivityDefinitions 。
我正在尝试创建一个以所有 ActivityCategorys 开头的树,并显示所有链接的 ActivityDefinitions 。这类似于具有以下类和映射的魅力,但我如何选择所有未分类的 ActivityDefinitions ?
public class ActivityCategory
{
public Guid CategoryDefinitionId { get; set; }
public IEnumerable(Of ActivityDefinition) UserActivities { get; set; }
public string DisplayName { get; set; }
}
public class ActivityDefinition
{
public Guid UserActivityDefinitionId { get; set; }
public string DisplayName { get; set; }
}
<class name="ActivityCategory" table="CategoryDefinition" lazy="false">
<id name="CategoryDefinitionId" type="guid">
<generator class="guid.comb"/>
</id>
<property name="DisplayName" />
<set name="Activities" table="CategoryAssociation_ActivityDefinition" cascade="all" lazy="false" fetch="select" order-by="4">
<key column="CategoryDefinitionId" />
<many-to-many column="ActivityDefinitionId" unique="true" class="ActivityDefinition" />
</set>
</class>
<class name="ActivityDefinition" table="ActivityDefinition" lazy="false">
<id name="ActivityDefinitionId" type="guid">
<generator class="guid.comb"/>
</id>
<property name="DisplayName" />
</class>
以下代码选择所有 ActivityCategories 并链接 ActivityDefinitions :
using (IStatelessSession session = SessionProvider.SessionFactory.OpenStatelessSession())
{
IList<ActivityCategory> res = session.QueryOver<ActivityCategory>().OrderBy((ActivityCategory x) => (object)x.DisplayName).Asc.List();
}
我如何选择所有未分类的 ActivityDefinitions ?