我正在尝试使用AND和AND创建一个HAVING子句,它会创建一个WHERE子句。
我测试了它,似乎问题只发生在我有一个AND或OR。
在这里你可以看到代码的简化版本(AND限制的两个部分是相同的,只是为了简化问题)。
eventQuery = eventQuery.Where(
Restrictions.And(
Restrictions.Le(
Projections.Conditional(
Restrictions.LeProperty( Projections.Property( () => aEvent.StartDate.End ), Projections.Max( () => aMeeting.Duration.Start ) ),
Projections.Max( () => aMeeting.Duration.Start ),
Projections.Property( () => aEvent.StartDate.End ) ),
DateTime.Now ),
Restrictions.Le(
Projections.Conditional(
Restrictions.LeProperty( Projections.Property( () => aEvent.StartDate.End ), Projections.Max( () => aMeeting.Duration.Start ) ),
Projections.Max( () => aMeeting.Duration.Start ),
Projections.Property( () => aEvent.StartDate.End ) ),
DateTime.Now ) )
);
你们有什么想法吗?
答案 0 :(得分:0)
这个问题似乎没有解决方案所以我们决定创建一个View查询,这样我们就可以将它映射到一个模型,并用一个Where子句写一个QueryOver来对着选定计算的字段。