EF6 AutoMapper6 Comportamiento diferente de padre / hijo

Acabo de actualizar una aplicación WCF completa de EF4 / AutoMapper 1.1 a EF6 / AutoMapper 6.0.0.2 y el comportamiento no es completamente el mismo.

Esto no funciona para mí:Entity Framework - Agregar entidad secundaria

Antes d :

child.Parent = parentObject

parentObject.Children.Add(child)

tuvo el mismo resultado en tiempo real (durante la depuración == antes de SaveChanges), así que decidí usarchild.Parent = parentObject para la legibilidad. @child.Parent = parentObject agregó un elemento secundario en parentObject automáticamente. El niño también fue agregado a la base de datos.

Ahor : child.Parent = parentObject ya no es suficiente (el elemento secundario no se agrega en la base de datos), tengo que agregar parentObject.Children.Add (elemento secundario). A veces necesito el enlace child.Parent = parentObject, así que tengo que escribir ambas líneas. ¿Alguien puede explicarme por qué ya no funciona?

También: podría escribirantes d :

Mapper.CreateMap< Patient, PATIENTENTITY >()
                .ForMember(dest => dest.Gender, opt => opt.ResolveUsing< PatientGenderResolver >())
                .ForMember(dest => dest.REF_GENDER, opt => opt.Ignore())

dóndedest.Gender es PK (int) y PatientGenderResolver encuentra el id (int) del género en la tabla REF_GENDER. Este mapeo fue suficiente para configurar PATIENTENTITY.REF_GENDER en tiempo real gracias a la resolución Id.

Ahor la identificación está configurada pero PATIENTENTITY.REF_GENDER permanece nulo. También traté de configurar directamente PATIENTENTITY.REF_GENDER con un solucionador pero agrega un género en la tabla REF_GENDER ...

Entonces, ¿alguien puede explicarme por qué ya no funciona?

EDITA Algunas precisiones:Antes de

    patientEntity = Mapper.PatientToEntity(patientModel);
    //patientEntity.REF_GENDER is null
    Context.PATIENTENTITIES.AddObject(patientEntity);
    //patientEntity.REF_GENDER is set !
    Context.SaveChanges();

Ahora

patientEntity = Mapper.PatientToEntity(patientModel);
//patientEntity.REF_GENDER is null
Context.PATIENTS.Add(patientEntity);
//patientEntity.REF_GENDER is still null !
//patientEntity.REF_GENDER = Context.REF_GENDER.Find(patientEntity.Gender);//I am obliged to add this line everywhere for every REF !
Context.SaveChanges();

Supongo que los dos problemas que tengo están relacionados

EDITA Acabo de volver a mi proyecto. Ahora tengo EF6 y Automapper 1.1. Los problemas son exactamente los mismos, así que supongo que Automapper no está involucrado.

EDITA Me soluciono el problema de REF_GENDER con

patientEntity = Mapper.PatientToEntity(patientModel, Context);
public PATIENT PatientToEntity(Patient patient, EntityContainer context)
{
    PATIENT entity = AutoMapper.Mapper.Map<Patient, PATIENT>(patient);
    if (patient.Id == null || patient.Id == Guid.Empty)
        entity.PatientId = Guid.NewGuid();
    else
        entity.PatientId = patient.Id;

    entity.REF_GENDER = context.REF_GENDER.Find(entity.Gender);

    return entity;
}

Aparentemente, el contexto tiene que ser el mismo; de lo contrario, se agrega un nuevo REF_GENDER a la base de datos

Respuestas a la pregunta(1)

Su respuesta a la pregunta