nHibernate选择不在set中的所有元素

时间:2014-01-13 10:24:37

标签: nhibernate set elements

我有 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

0 个答案:

没有答案