Entity Framework ne détectera pas les modifications des propriétés de navigation

Je vais avoir des problèmes avec la détection des changements d'une propriété de navigation:

Mon modèle de test ressemble à ceci:

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; }
}

J'ai créé et enregistré un objet de type Personne à la fois le Nom et l'Adresse des propriétés affectées. Mon problème est que si je récupère la Personne objet de la base de données et j'ai changer l'Adresse de la propriété (ex. Null) puis, l'e.f. ne détecte pas le changement!
Mon code est: est-ce

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

Pourquoi est entry.State Inchangé ?

Edit: Si je l'appelle le SaveChanges, l'enregistrement est enregistré correctement (l'Adresse nulle)!

Edit 2: j'ai créé la clé étrangère de la propriété que billy a suggéré, et si je l'inspecter la Personne objet dans visual studio, l'État est Modifié.. si je ne m'arrête pas avec le débogueur de l'inspection l'objet de valeurs de l'état est Inchangé!

Edit 3: Chargement de la Personne objet à l'aide de ctx.Personnes.Inclure(x => x.L'adresse).First(); permet de résoudre le problème. Est-il un moyen pour éviter l'appel d'Inclure et de continuer à modifier l'Adresse de la propriété au lieu de la AddressId?

source d'informationauteur Mones