Как мне выразить «не в», используя лямбды?

Я пытаюсь создать предложение not in с API-интерфейсом NHibernate Criteria, используя NHLambdaExtensions Читая документацию, я смог реализовать в предложении , выполнив

.Add(SqlExpression.In<Zone>(z => zoneAlias.ZoneId, new int[] { 1008, 1010 }))

Однако, когда я обертываю его вокруг SqlExpression.Not , я получаю ошибку

Error   5   The best overloaded method match for 'NHibernate.LambdaExtensions.SqlExpression.Not<oms_dal.Models.Zone>(System.Linq.Expressions.Expression<System.Func<oms_dal.Models.Zone,bool>>)' has some invalid arguments
Error   6   Argument '1': cannot convert from 'NHibernate.Criterion.ICriterion' to 'System.Linq.Expressions.Expression<System.Func<oms_dal.Models.Zone,bool>>'

, которую я использую этот кусок кода

.Add(SqlExpression.Not<Zone>(SqlExpression.In<Zone>(x => zoneAlias.ZoneId, new int[] { 1008, 1010 })))

Как я могу это сделать? Используя обычный Criteria API, я смог сделать это

.Add(Restrictions.Not(Restrictions.In("z.ZoneId", new[] { 1008, 1010 })))
7
задан Mike 3 September 2010 в 18:36
поделиться