title: Query in LINQ with self join
body: <p>I have a table which contains columns among others like Id as Primary Key and LastMeterReadingId (Foreign Key which references to same table) - something like Parent Meter Reading.</p>
  
  <p><img src="https://i.imgur.com/wCMpCON.png" alt="That&#39;s how it&#39;s looks like"></p>
  
  <p>I would like to get all rows which are not already used like Parent. I would like to avoid situation when meter reading is parent for more than one meter reading. </p>
  
  <p>I know how to join to same table, but I have no idea how to choose only those records which aren't parent already. That's how query looks like without condition statement.</p>
  
  <pre><code>return (from m in uow.MeterReadingReadWriteRepository.Query()
                  join parent in uow.MeterReadingReadWriteRepository.Query() on m.Id equals parent.LastMeterReadingId
  
                  select new MeterReadingDto()
                  {
                      (...)
                  }).ToList();
  </code></pre>
  
  <p>Do you have any idea how to achieve it in efficient way?</p>
  
  <p>Regards.</p>