Is this repository code written according to best practices? The Last Section I included it in the repository as well.class HR_Repository<T> : IRepository<T> where T : class{    private readonly  LoginDataContext dataContext;    public HR_Repository(LoginDataContext dataContext)    {    this.dataContext = dataContext;    }    public void Commit()    {        dataContext.SubmitChanges();    }    public IList<T> FindAll()    {        var table = this.LookupTableFor(typeof(T));        return table.Cast<T>().ToList();    }    public IQueryable<T> Find()    {        var table = this.LookupTableFor(typeof(T));        return table.Cast<T>();    }    public void Add(T item)    {        var table = this.LookupTableFor(typeof(T));        table.InsertOnSubmit(item);    }       public void Delete(T item)    {        var table = this.LookupTableFor(typeof(T));        table.DeleteOnSubmit(item);    }    private ITable LookupTableFor(Type entityType)    {        return dataContext.GetTable(entityType);    }}public static class UserQueries{    public static Employee ByUserName(this IQueryable<Employee> employees, string username)    {        return employees.Where(u => u.User_Name == username).FirstOrDefault();    }}
Is the following repository pattern properly applied?
c#;design patterns