Entity Framework 4.1 RC: problema de herança do Code First EntityTypeConfiguration

Estou tentando usar uma classe EntityTypeConfiguration comum para configurar a chave primária de todas as minhas entidades, para que cada classe de configuração derivada não se repita. Todas as minhas entidades implementam uma interface comum IEntity (que diz que cada entidade deve ter uma propriedade Id do tipo int).

inha classe base de configuração é assim:

public class EntityConfiguration<TEntity> : EntityTypeConfiguration<TEntity>

    where TEntity : class , IEntity {

    public EntityConfiguration() {

        HasKey( e => e.Id );

        Property( e => e.Id ).HasDatabaseGeneratedOption( DatabaseGeneratedOption.Identity );

    }

}

ada entidade possui sua própria classe de configuração específica, estendendo esta como est

public class CustomerConfiguration : EntityConfiguration<Customer> {

    public CustomerConfiguration() : base() {

        // Entity specific configuration here

    }

}

Compila bem, mas o problema que estou tendo é que, em tempo de execução, recebo a seguinte exceção sendo levantada quando o EF 4.1 RC tenta criar o modelo:

System.InvalidOperationException não foi tratado Message = O componente-chave 'Id' não é uma propriedade declarada no tipo 'Cliente'. Verifique se ele não foi excluído explicitamente do modelo e se é uma propriedade primitiva válida. Source = EntityFramework

Se eu alterar a classe CustomerConfiguration para estender a partir de EntityTypeConfiguration <Customer> e repetir a configuração da chave primária, ela funcionará bem, mas perco a capacidade de compartilhar configurações comuns (o principal DRY é a motivação

Estou fazendo algo errado aqui?xiste outra maneira de compartilhar configurações comuns entre entidade

Para referência, aqui estão as outras classes envolvidas:

public interface IEntity {

    int Id { get; set; }

}

public class Customer : IEntity {

    public virtual int Id { get; set; }

    public virtual string name { get; set; }

}

Obrigado

questionAnswers(4)

yourAnswerToTheQuestion