protected void VisitWhereCall(Expression whereBodyExp) { var whereVisitor = new WhereVisitor(this._tableEntityType); whereVisitor.Visit(whereBodyExp); // converting conditions if ( (whereVisitor.FieldNames.Count != whereVisitor.ScanOperators.Count) || (whereVisitor.ScanOperators.Count != whereVisitor.FieldValues.Count) ) { throw new InvalidOperationException("Failed to convert the query to a list of search conditions"); } for (int i = 0; i < whereVisitor.FieldNames.Count; i++) { this.TranslationResult.Conditions.AddCondition ( whereVisitor.FieldNames[i], new SearchCondition(whereVisitor.ScanOperators[i], whereVisitor.FieldValues[i]) ); } }