Como faço o mapeamento para e de um tipo complexo no código do EF4.3 primeiro?

Eu tenho um tipo de entidade assim:

public class Invoice{
    public int Id { get; set; }
    public InvoiceNumberSequence Sequence { get; set; }
    public decimal Amount { get; set; }
}

oInvoiceNumberSequence se parece com isso:

public class InvoiceNumberSequence { 
    public string Prefix { get; set; }
    public int Number { get; set; }

    public string GetSequence() {
        return Prefix + Number;
    }
}

Meu problema é que eu tenho um banco de dados existente que não posso mudar e estou tentando mapear tabelas / colunas para o meu modelo de domínio. Veja como a tabela se parece:

[SYSTEMINVOICES]
INVOICE_ID int
INV_TOTAL decimal
INVOICE_SEQ varchar(255)

eu tenho umDbContext como isso:

public MyDatabaseContext : DbContext {
    public DbSet<Invoice> Invoices { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder) {
        modelBuilder.Entity<PredictedHeat>().ToTable("SYSTEMINVOICES");
        modelBuilder.Entity<Invoice>().HasKey(p => p.Id);
        modelBuilder.Entity<Invoice>().Property(p => p.Id).HasColumnName("INVOICE_ID");
        modelBuilder.Entity<Invoice>().Property(p => p.Amount).HasColumnName("INV_TOTAL");        
        //need something here to map my invoice sequence to my database table
    }
}

Eu preciso mapear o InvoiceNumberSequence ambas as direções ... 1) do campo do banco de dados para a classe InvoiceNumberSequence, e 2) do método InvoiceNumberSequence.GetSequence () para o campo do banco de dados.

Como posso fazer isso?

questionAnswers(1)

yourAnswerToTheQuestion