Entity Framework 6.1 Atualizando um subconjunto de um registro

Eu tenho um modelo de vista que encapsula apenasalguns das propriedades do modelo de banco de dados. Essas propriedades contidas no modelo de exibição são as únicas propriedades que desejo atualizar. Eu quero que as outras propriedades preservem seu valor.

Durante minha pesquisa, encontreiesta resposta que parece ser perfeita para minhas necessidades, no entanto, apesar dos meus melhores esforços, não consigo que o código funcione conforme o esperado.

Aqui está um exemplo isolado do que eu vim com:

static void Main() {
    // Person with ID 1 already exists in database.

    // 1. Update the Age and Name.
    Person person = new Person();
    person.Id = 1;
    person.Age = 18;
    person.Name = "Alex";

    // 2. Do not update the NI. I want to preserve that value.
    // person.NINumber = "123456";

    Update(person);
}

static void Update(Person updatedPerson) {
    var context = new PersonContext();

    context.Persons.Attach(updatedPerson);
    var entry = context.Entry(updatedPerson);

    entry.Property(e => e.Name).IsModified = true;
    entry.Property(e => e.Age).IsModified = true;

    // Boom! Throws a validation exception saying that the 
    // NI field is required.
    context.SaveChanges();
}

public class PersonContext : DbContext {
    public DbSet<Person> Persons { get; set; }
}

public class Person {
    public int Id { get; set; }
    [Required]
    public string Name { get; set; }
    [Required] 
    public int Age { get; set; } // this is contrived so, yeah.
    [Required]
    public string NINumber { get; set; }
}

O que estou fazendo errado?

questionAnswers(3)

yourAnswerToTheQuestion