title: .OrderBy() / .OrderByDescending() with .FirstOrDefault()/.First()
body: <p>I have list of results from table named "product".</p>
  
  <pre><code>Id      User    ProductName     ArrivalDate
  ----    -----   ------------    ------------
  1       James   Shoes           05/07/2016
  2       Jenny   TShirt          05/01/2018
  3       James   Pants           13/05/2017
  </code></pre>
  
  <p>i would like to sort the result by descending order based on ArrivalDate where User is "James", which mean it should return to me the third row result.
  However, if i do as below:</p>
  
  <pre><code>return List(spec).OrderByDescending(x=&gt;x.ArrivalDate).FirstOrDefault();
  </code></pre>
  
  <p>the result i got is still the first one, appereciate if anyone could guide on this.
  Below is the sample code:</p>
  
  <pre><code>public class EfRepository&lt;T&gt; : IRepository&lt;T&gt;, IAsyncRepository&lt;T&gt; where T : BaseEntity
  {
      public T GetSingleBySpec(ISpecification&lt;T&gt; spec)
      {
          return List(spec).FirstOrDefault();
      }
  }
  
  public class ProductSpecification : BaseSpecification&lt;NewProducts&gt;
  {
      public ProductSpecification(string User)
      : base(b =&gt; b.User == User) //User = James
      {
  
      }
  }
  
  public class ProductService : IProductService
  {
      public void getOrderProductDetails
      {
          var data = _productRepository.GetSingleBySpec(new ProductSpecification(user));
      }
  }
  </code></pre>