Why have a base class if no derived class shares any behaviour or data? You should look into Liskov Substitution principle (LSP). LSP basically says that correct systems adhere to strong behavioural subtyping and that in a polymorphic scenario when one type is substituted for another it will not violate correctness, etc.
You're clearly violating this principle by having two subclasses with nothing real in common. I would suggest you look at a different way of approaching this and provide more detail on what you want to accomplish so someone might be able to help you accomplish what you need.
Without knowing more about what you're trying to do, here's something I would suggest:
public abstract class BaseClass
{
public abstract void DoSomething();
}
public class Apple : BaseClass
{
public int Diameter { get; set; }
public override void DoSomething()
{
// Do something specific for Apple
}
}
//...
public void DoStuff(Query query)
{
// The query only ever returns bananas OR Apples. Never both.
var items = repository.GetItems<BaseClass>(query);
foreach (var item in items)
{
item.DoSomething();
}
}