下面的代码工作:铸造名单<x>列出<y>
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
- 有谁知道为什么可能发生?
UPDATE
tblStocks是LINQ到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;
}
}
“tblStocks”的类型是如何定义的? –
只是一个想法,不知道这个:'repository.Single(id).tblStocks'返回一个数组或列表'JsonStock',所以当你试图将其作为'JsonStock'投射时,它会投诉... – Marco
@Marco - no它不应该抱怨。 –