Entity Framework no detectará cambios en las propiedades de navegación

Tengo problemas para detectar cambios en una propiedad de navegación:

Mi modelo de prueba se ve así:

public class Person
{
    public int Id { get; set; }

    public string Name { get; set; }

    public virtual Address Address { get; set; }
}

public class Address
{
    public int Id { get; set; }

    public string Name { get; set; }
}

He creado y guardado un objeto de tipo Persona con las propiedades de Nombre y Dirección asignadas. Mi problema es que si recupero el objeto Person de la base de datos y cambio la propiedad de Dirección (por ejemplo, a Null), la e.f. no detecta el cambio! Mi código es este:

using (var ctx = new EFContext())
{
    Person p = ctx.People.First();
    //p.Address IS NOT NULL!
    p.Address = null;
    var entry = ctx.Entry(p);
}

Por que esentry.State Sin alterar ?

Editar: Si llamo a SaveChanges, el registro se guarda correctamente (la dirección se vuelve nula).

Edición 2: He creado la propiedad de la clave foránea tal como Billy sugirió y si inspecciono el objeto Person en el estudio visual, el estado se modifica.

Edición 3: Cargando el objeto Person usando ctx.People.Include (x => x.Address) .First (); resuelve el problema ¿Hay una manera de evitar llamar a Incluir y continuar modificando la propiedad de Dirección en lugar de la Dirección de Id.

Respuestas a la pregunta(3)

Su respuesta a la pregunta