2016-03-02 78 views
1

我想在nhibernate中做一个查询,我遇到了一个问题。Nhibernate - 查询空过时检查别名给对象空参考

我想要接收所有具有模式“报告”的事件报告(没有事件的报告)可为空)

所以我尝试:

Incident inc = null; 

Session.QueryOver<Report>() 
    .Left.JoinAlias(r => r.Incident,() => inc) 
    .Where(new Disjunction() 
     .Add(Restriction.On(() => inc).IsNull) 
     .Add(() => inc.Type == "Violence")); 

,我也得到:

对象refernces不设置到对象的实例。

回答

1

试试这个:

Session.QueryOver<Report>().Left.JoinAlias(r => r.Incident,() => inc) 
    .Where(
     Restrictions.Disjunction() 
     .Add(Restrictions.On<Report>(r => r.Incident).IsNull) 
     .Add(Restrictions.Eq(Projections.Property(() => inc.Type), "Violence")) 
    );