Código EF4 primero: cómo asignar correctamente la división de una entidad en varias tablas

Estoy usando EF4 CTP5 para tratar de persistir un objeto POCO que se divide en dos tablas, siendo el enlace el ContactID. Cuando guardo un contacto, quiero que la información de contacto principal se guarde en una tabla (Contactos) y el enlace al usuario que posee el contacto guardado en otra (UserToContacts). Tengo la asignación personalizada que se define a continuación, pero cuando guardo cambios, aparece el siguiente error:

Un valor compartido entre entidades o asociaciones se genera en más de una ubicación. Compruebe que la asignación no divide una EntityKey en varias columnas generadas por la tienda.

¡Cualquier idea sería muy apreciada!

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        /// Perform Custom Mapping
        modelBuilder.Entity<Contact>()
           .Map(mc =>
           {
               mc.Properties(p => new
               {
                   p.ContactID,
                   p.FirstName,
                   p.MiddleName,
                   p.LastName
               });
               mc.ToTable("Contacts");
           })
        .Map(mc =>
        {
            mc.Properties(p => new
            {
                p.ContactID,
                p.UserID
            });
            mc.ToTable("UserToContacts");
        });
    }

Respuestas a la pregunta(2)

Su respuesta a la pregunta