I refactored some of your code, but with commentary to improve your writing.
// PontoEntites é um Contexto de repositório ou banco de dados
// Então, quando instancia um PontoEntities ele retorna um Contexto, e não um Entity
// Uma entidade compôe um contexto
using (var ctx = new PontoEntities())
{
// Nomenclatura de variaveis devem mostrar qual dado ela representa com clareza
var colaborador = ctx.Colaboradores
// Em expressões, é "OK" encurtar as variaveis, para evitar
// colisão com variaveis externas, mas evite quando possivel
.FirstOrDefault(col => col.Nome == nomeColaborador);
// Colocar o tipo da variavel em seu nome é uma má prática
// O uso do plural na nomenclatura é importante para deixar claro que
// representa uma coleção, e não apenas uma unidade do dado.
// Mas tente nunca usar sufixo "Lista" como "ListaDeHoras" ou algo do tipo.
var horas = ctx
// Entenda melhor a Linguagem Obliqua do seu negócio.
// Um colaborador "Bate o Ponto", então vc persiste os Pontos e não Batidas
// Salvo se for um sistema de bar de coctails :)
.Pontos
// Codigo != Id. Codigo é uma informação fornecida, como Codigo de Barras,
// Codigo de Area, Codigo de Acesso. A nomenclatura "Codigo" não deve ser usada
// para Identificação, para isso, use "Id".
// Para "identificação" ou "chave primária", sempre use Id
// Ex: Ponto.Id, e para relacionar use como sufixo, Ponto.ColaboradorId
.Where(ponto => ponto.Id == colaborador.Id)
// Sempre que possivel, reduza o trafego de dados entre seu repositorio de dados
// e sua aplicação. Seu repositorio pode te entregar o total de horas, sem precisar
// trafegar todo historico de Pontos. Isso aumenta performance e reduz complexidade
// da sua aplicação
.Sum(ponto => ponto.Horastotais);
// Use Debug.WriteLine para criar logs em tempo de debugging
// Esse é um output não bloqueante, e é certo que quando compilar
// seu código para release - produção - esse trecho não será incluído.
// Vc pode ver suas saída pela janela Output / Debug
Debug.WriteLine("{0} horas trabalhadas", horas);
}