流利的nHibernate限制。似乎没有正常工作

时间:2015-05-26 08:50:46

标签: c# nhibernate fluent-nhibernate

我有这个协会:

TableA 1 --- * TableB 

我尝试构建一个查询,该查询返回TableA项的列表,其中所有项(TableB)在X列和{{1}列中都有值}。但是那个查询似乎忽略了Y,为什么?

或者,如何重建该查询,也许可以使用子查询?

not null condition in the X and Y column

1 个答案:

答案 0 :(得分:1)

使用子查询过滤掉tabB-Items

中具有空值的TableA元素
var subquery = QueryOver.Of<TableA>()
    .JoinQueryOver(tabA => tabA.TableBItems)
        .Where(tabB => tabB.X == null || tabB.Y == null)
    .Select(Projections.Id());

var s = Session.QueryOver<TableA>()
    .Where(tabA => tabA.SomeID == 123 && tabA.SomeNullableDate != null)
    .WhereRestrictionOn(Projections.Id()).NotIn(subquery)
    .JoinQueryOver(tabA => tabA.TableBItems)
        .Where(tabB => tabB.X != null && tabB.Y != null)
    .List<TableA>();