Работает следующий код:
List<JsonStock> stock = new List<JsonStock>();
foreach(tblStock item in repository.Single(id).tblStocks)                
    stock.Add((JsonStock) item);
Итак, вы, наверное, думаете, что этот код тоже будет работать:
List<JsonStock> stock = repository.Single(id).tblStocks.Cast<JsonStock>().ToList()
Но я получаю сообщение об ошибке Invalid cast operation - кто-нибудь знает, почему это может случиться?
ОБНОВЛЕНИЕ
tblStocks - это список объектов LINQ to SQL, tblStock. 
JsonStock - это упрощенная версия класса tblStock и возвращается на веб-страницу как объект JSON.
Для выполнения кастинга был создан следующий оператор:
public partial class tblStock{
    public static explicit operator JsonStock(tblStock stock){
        JsonStock item = new JsonStock
        {
            boxes = stock.boxes,
            boxtype = stock.tblBoxType.name,
            boxtype_id = stock.boxtype_id,
            grade = stock.grade,
            packrate = stock.packrate,
            weight = stock.weight
        };
        return item;
    }
}