title: One to One HasRequired configuration not working
body: <p>I have two sets of objects: <code>Coupon</code> and <code>DiscountScheme</code>.<br>
  Each have a connected object of <code>{Type}Action</code>, and identical configurations.<br>
  When making a request for <code>Coupon</code>, I do not get anything back,
  but the same query for <code>DiscountScheme</code> works as expected</p>
  
  <p>A condensed version of the classes (The full code and sql for the tables can be found <a href="https://gist.github.com/M-Zuber/807661a410a88a326b5adfa7c6eb0430" rel="nofollow noreferrer">here</a>):</p>
  
  <pre class="lang-cs prettyprint-override"><code>public class CouponAction
  {
      public int Id { get; set; }
      public virtual Coupon Coupon { get; set; }
  }
  
  public class Coupon
  {
      public int Id { get; set; }
      public virtual CouponAction Action { get; set; }
  }
  
  public class DiscountSchemeAction
  {
      public int Id { get; set; }
      public virtual DiscountScheme DiscountScheme { get; set; }
  }
  
  public class DiscountScheme
  {
      public int Id { get; set; }
      public virtual DiscountSchemeAction Action { get; set; }
  }
  </code></pre>
  
  <p>The configuration:</p>
  
  <pre class="lang-cs prettyprint-override"><code>public class CouponActionMap : EntityTypeConfiguration&lt;CouponAction&gt;
  {
      public CouponActionMap()
      {
          ToTable("CouponAction");
      }
  }
  
  public class CouponMap : EntityTypeConfiguration&lt;Coupon&gt;
  {
      public CouponMap()
      {
          ToTable("Coupon");
          HasRequired(c =&gt; c.Action);
      }
  }
  
  public class DiscountSchemeActionMap : EntityTypeConfiguration&lt;DiscountSchemeAction&gt;
  {
      public DiscountSchemeActionMap()
      {
          ToTable("DiscountSchemeAction");
      }
  }
  
  public class DiscountSchemeMap : EntityTypeConfiguration&lt;DiscountScheme&gt;
  {
      public DiscountSchemeMap()
      {
          ToTable("DiscountScheme");
  
          HasRequired(ds =&gt; ds.Action);
      }
  }
  </code></pre>
  
  <p>The query I am trying to make:</p>
  
  <pre class="lang-cs prettyprint-override"><code>using(var context = new Context()/* My database context, using a custom wrapper framework*/)
  {
    Console.WriteLine(context.Coupons.ToList()); // nothing
    Console.WriteLine(context.DiscountSchemes.ToList()); // the contents of the table
  }
  </code></pre>
  
  <p>If I query the actions table, I do get the contents, but again for <code>CouponAction</code> I do not get the connected <code>Coupon</code>, and for <code>DiscountScheme</code> it works as expected.</p>