public ExtentOperation(Session session, Extent firstOperand, Extent secondOperand, ExtentOperationType operationType) : base(session) { if (!firstOperand.ObjectType.Equals(secondOperand.ObjectType)) { throw new ArgumentException("Both extents in a Union, Intersect or Except must be from the same type"); } this.operationType = operationType; this.firstOperand = firstOperand; this.secondOperand = secondOperand; firstOperand.Parent = this; secondOperand.Parent = this; }