title: EF: Validation failing on update when using lazy-loaded, required properties
body: <p>Given this extremely simple model:</p>
  
  <pre><code>public class MyContext : BaseContext
  {
      public DbSet&lt;Foo&gt; Foos { get; set; }
      public DbSet&lt;Bar&gt; Bars { get; set; }
  }
  
  public class Foo
  {
      public int Id { get; set; }
      public int Data { get; set; }
      [Required]
      public virtual Bar Bar { get; set; }
  }
  
  public class Bar
  {
      public int Id { get; set; }
  }
  </code></pre>
  
  <p>The following program fails:</p>
  
  <pre><code>object id;
  using (var context = new MyContext())
  {
      var foo = new Foo { Bar = new Bar() };
      context.Foos.Add(foo);
      context.SaveChanges();
      id = foo.Id;
  }
  using (var context = new MyContext())
  {
      var foo = context.Foos.Find(id);
      foo.Data = 2;
      context.SaveChanges(); //Crash here
  }
  </code></pre>
  
  <p>With a <code>DbEntityValidationException</code>. The message found in <code>EntityValidationErrors</code> is <em>The Bar field is required.</em>.</p>
  
  <p>However, if I force loading of the <code>Bar</code> property by adding the following line before <code>SaveChanges</code>:</p>
  
  <pre><code>var bar = foo.Bar;
  </code></pre>
  
  <p>Everything works fine. This also works if I remove the <code>[Required]</code> attribute.</p>
  
  <p>Is this really the expected behavior? Are there any workarounds (besides loading every single required reference every time I want to update an entity)</p>