Работает следующий код:
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;
}
}