public T Single <T>(ISpecification <T> spec) where T : DataEntity
 {
     return(_db.Set <T>().SingleOrDefault(spec.Criteria));
 }
 public List <T> List <T>(ISpecification <T> spec) where T : DataEntity
 {
     return(spec != null
         ? SetWithIncludes(spec).Where(spec.Criteria).ToList()
         : _db.Set <T>().ToList());
 }