I generated a entity classes + data contexts by LINQ to Sharepoint and created a repository classes. When I use normal database and mapping like Entity framework I've got usually some base repository class with some common generic methods like Find(Expression> where). Theese methods are generic and placed in base class, example:

using GetList method of DataContext you can create the same repository pattern as it was done in Entity Framework, but you repository needs 2 additional params - current list name you are working with (cause one site can have several lists of the same content type, that differs by name and url) and url of site you are working with to create a data context.

and Item is base content type that provides you id parameter and all other implement you.

Also my strong consideration not to use Find method that receives expression that is used to filter data - that is very powerful, but decrease Repository pattern strength cause you split data access logic in repository and in custom code that use the repository. Thus you may have several places that a new change should be applied instead of one in the repository.