title: IGenericRepository<T> - Cannot resolve symbol where
body: <p>I'm following a tutorial on the unit of work pattern and my code won't compile because it doesn't recognise where in the interface signature and it doesn't recognise type T.</p>
  
  <pre><code>using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Linq.Expressions;
  using System.Text;
  using System.Threading.Tasks;
  
  namespace DataLayer.Repository
  {
     public interface IGenericRepository&lt;T&gt; : where T : class
  {
      IQueryable&lt;T&gt; AsQueryable();
  
      IEnumerable&lt;T&gt; GetAll();
      IEnumerable&lt;T&gt; Find(Expression&lt;Func&lt;T, bool&gt;&gt; predicate);
      T Single(Expression&lt;Func&lt;T, bool&gt;&gt;  predicate);
      T SingleOrDefault(Expression&lt;Func&lt;T, bool&gt;&gt; predicate);
      T First(Expression&lt;Func&lt;T, bool&gt;&gt; predicate);
      T GetById(int id);
  
      void Add(T entity);
      void Delete(T entity);
      void Attach(T entity);
  }
  }
  </code></pre>
  
  <p>Can anyone see what I'm missing?</p>