title: How do I correctly perform an eager load in Simple.Data?
body: <p>When I try to do an eager load (<code>.WithXyz()</code> method), I get the wrong data back. It tries to do a join using the primary Id of both tables, rather than the "property" on the main table joined to the Id of the secondary table.</p>
  
  <p>Is this a bug in my code, in Simple.Data.MySql, or in Simple.Data?</p>
  
  <p>I am using the version of Simple.Data (0.18.3.1) and Simple.Data.MySql (0.18.3.0) from NuGet.</p>
  
  <p>My code:</p>
  
  <pre><code>var traceListener = new SimpleDataTraceListener(); // For logging SQL
  Trace.Listeners.Add(traceListener);
  
  var db = Database.Open();
  OrderItem orderItem = db.OrderItems
      .WithCustomer()
      .Get(1)
      ;
  
  Console.WriteLine(traceListener.Output);
  Console.WriteLine(orderItem.Customer.FullName);
  </code></pre>
  
  <p>Here is an example of the SQL I expect:</p>
  
  <pre><code>SELECT orderitem.id,
         orderitem.customer_Id,
         orderitem.productname,
         customer.id AS __with1__Customer__id,
         customer.fullname AS __with1__Customer__fullname
  FROM orderitem
  LEFT JOIN customer ON (orderitem.customer_Id = customer.id)
  WHERE orderitem.id = ?p1 LIMIT 0, 1
  
  ?p1 (UInt64) = 1
  </code></pre>
  
  <p>Here is the log of the SQL it is actually creating:</p>
  
  <pre><code>select orderitem.id,
         orderitem.customer_Id,
         orderitem.productname,
         customer.id AS __with1__Customer__id,
         customer.fullname AS __with1__Customer__fullname
  from orderitem
  LEFT JOIN customer ON (orderitem.id = customer.id)
  WHERE orderitem.id = ?p1 LIMIT 0, 1
  
  ?p1 (UInt64) = 1
  </code></pre>
  
  <p>My data:</p>
  
  <pre><code>CREATE TABLE `customer` (
    `id` BIGINT(20) NOT NULL AUTO_INCREMENT,
    `fullname` VARCHAR(130) NOT NULL,
    PRIMARY KEY (`id`),
    UNIQUE INDEX `fullname_UNIQUE` (`fullname` ASC)
  );
  
  CREATE TABLE `orderitem` (
    `id` BIGINT(20) NOT NULL AUTO_INCREMENT,
    `customer_Id` BIGINT(20) NOT NULL,
    `productname` VARCHAR(130) NOT NULL,
    PRIMARY KEY (`id`),
    FOREIGN KEY (`customer_Id`) REFERENCES `customer` (`id`)
  );
  
  INSERT INTO `customer` (fullname)
  VALUES ('wall-E'), ('merlyn'), ('someone');
  
  INSERT INTO `orderitem` (customer_Id, productName)
  VALUES (3, 'test item 1'), (2, 'test item 2'), (1, 'test item 3');
  </code></pre>