Оператор результата ExceptResultOperator в настоящее время не поддерживается

#nhibernate #linq-to-nhibernate

Вопрос:

Я хочу исключить один набор результатов из другого, и я использую, за исключением этого, но он выдает ошибку, что «Оператор результата ExceptResultOperator в настоящее время не поддерживается». Я не могу использовать все условия в предложении where одного запроса, так как это даст мне безупречный результат.

//Пример кода, который я пробовал

  var result1 = Session.Query<Table>()
                .Where(x => x.ColumnName != null amp;amp; !x.active)
                .Select(x => x)

   var result2 = Session.Query<Table>()
                .Where(x => x.Active)
                .Except(result1)
                .Select(x => x)
 

Ответ №1:

Вы можете использовать Contains вместо Except :

  var result1 = Session.Query<Table>()
                .Where(x => x.ColumnName != null amp;amp; !x.active)
                .Select(x => x)

 var result2 = Session.Query<Table>()
                .Where(x => x.Active amp;amp; !result1.Contains(x))
                .Select(x => x)