title: InvalidOperationException on Find if primary key calculated using child foreign keys
body: <p>[ <em>Using Code First DbContext with Entity Framework 5.0 RC</em> ]</p>
  
  <h3>Entity with Id Derived from its Navigational Properties</h3>
  
  <pre><code>public class Domain
  {
      private string _id;
      private SecondLevelDomain _secondLevelDomain;
      private TopLevelDomain _topLevelDomain;
  
      public string Id
      {
          get
          {
              // Trigger setter synthesis
              Id = null;
              return _id;
          }
          set
          {
              string parentId = String.Empty;
              if (Sld.Id != null)
                  output += Sld.Id + " ";
              if (Tld.Id != null)
                  output += Tld.Id;
              _id = parentId;
          }
      }
  
      public string SecondLevelDomainId
      {
          get;
          set;
      }
  
      [ForeignKey("SecondLevelDomainId")]
      public SecondLevelDomain Sld
      {
          get 
          { 
              return _secondLevelDomain 
              ?? (_secondLevelDomain = new SecondLevelDomain());
          }
          set 
          { 
              Debug.WriteLine("Foreign Setter Not Called Before Its Too Late");
              _secondLevelDomain = value;
          }
      }
  
      public string TopLevelDomainId
      {
          get;
          set;
      }
  
      [ForeignKey("TopLevelDomainId")]
      public TopLevelDomain Tld
      {
          get 
          { 
               return _topLevelDomain 
               ?? (_topLevelDomain = new TopLevelDomain()); 
          }
          set { _topLevelDomain = value; }
      }
  }
  </code></pre>
  
  <h3>Parent Id Evaluates to Empty on Domain Creation from Database</h3>
  
  <pre><code>public CheckDomainInDatabase(string domainId) {
      var domainFromDatabase = Repositor.Domains.Find(domainId);
  }
  </code></pre>
  
  <ul>
  <li><code>InvalidOperationException: The value of a property that is part of an object's key does not match the corresponding property value stored in the ObjectContext.  This can occur if properties that are part of the key return inconsistent or incorrect values or if DetectChanges is not called after changes are made to a property that is part of the key.</code></li>
  </ul>
  
  <p><em>I need to be able to retrieve these domains with aggregate identifiers, because I need to then modify some of their other properties (not shown) - but this error is throwing me off that track...</em></p>