Transmitir um objeto para um objeto de uma classe derivada

Eu tenho uma aulaRecord isso funciona bem:

public class Record 
{
    protected string table;
    protected string idcolumn;
    public Record(string _table, string _idcol, int _id) 
    {
        table = _table;
        idcolumn = _idcol;
        Id = _id;
    }
}

Eu também tenho uma aulaOrder que é derivado deRecord, que implementa métodos extras, aplicável apenas em um determinado tipo de registro:

class Order : Record 
{
    public void Start() 
    {
    }
}

Na minha aplicação, eu tenho um objetotheRecord do tipoRecord que eu quero lançar paraOrder, para que eu possa ligar para oStart método sobre ele.

Eu tentei lançá-lo:

Order r = (Order)theRecord;

mas isso lança umInvalidCastException.

Eu estou pensando que eu poderia criar um novo construtor paraOrder que leva umRecord, mas eu já tenho o objeto (que é construído por buscar um registro do banco de dados).

Como eu poderia implementar isso corretamente?

questionAnswers(4)

yourAnswerToTheQuestion