Entity Framework 6.1 Actualización de un subconjunto de un registro

Tengo un modelo de vista que solo encapsulaalgunos de las propiedades del modelo de base de datos. Estas propiedades contenidas en el modelo de vista son las únicas propiedades que quiero actualizar. Quiero que las otras propiedades conserven su valor.

Durante mi investigación encontréesta respuesta que parece ser perfecta para mis necesidades, sin embargo, a pesar de mis mejores esfuerzos, no puedo hacer que el código funcione como se esperaba.

Aquí hay un ejemplo aislado de lo que se me ocurrió:

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

¿Qué estoy haciendo mal?

Respuestas a la pregunta(3)

Su respuesta a la pregunta