//If you define interfaces you can return return IEnumerable<IInterface> protected override IEnumerable <Base> ExecuteImpl() { //here you can somehow convert result of query to your types(Class1, Class2 or some interface behind) return(_solrOperations.Execute().ConvertTo <IEnumerable <Base> >()); }