Nhibernate条件检索对父级的其他子级有限制的父级的子级

问题描述 投票:0回答:1

我需要能够将以下查询作为条件来编写。

SELECT hist.*
FROM
    Administration admin
    INNER JOIN Item item ON item.AdministrationId = admin.AdministrationId
    INNER JOIN ItemHistory hist ON hist.ItemId = item.ItemId
WHERE
    item.itemId = @param
    and hist.IsError =
        (
            SELECT (CASE status.errorType
                        WHEN 'Warning' THEN 0
                        ELSE 1
                    END
                   )
            FROM
                AdminStatus status
            WHERE
                status.AdministrationId = admin.AdministrationId
                AND status.Group = 'Issues'
        )

我很确定我将需要作为独立条件进行子查询:

var status = DetachedCriteria.For<AdminStatus>("status");
        status.CreateAlias("status.Administration", "admin");
        status.Add(Restrictions.Eq("status.Group", "Issues"));
        status.SetProjection(Projections.Property("AdministrationId"));
        status.SetProjection(Projections.Conditional(
                        Restrictions.Eq("status.errorType", "Warning"),
                        Projections.Constant(0),
                        Projections.Constant(1)));

但是我不确定如何将其与主要标准结合在一起:

    var criteria = Session.CreateCriteria<ItemHIstory>("hist");
        criteria.CreateAlias("ItemHistory.Item", "item");
        criteria.CreateAlias("item.Administration", "admin");    
nhibernate fluent-nhibernate nhibernate-criteria
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.