以下代码有效:
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()
但是我遇到了错误无效的转换操作
,有人知道为什么会出现这种情况吗?
更新
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;
}
}
tblStocks
的类型是如何定义的? - Daniel A. Whiteforeach(tblStock item in repository.Single(id).tblStocks.Cast(JsonStock))
并观察它在哪里崩溃(通过计算插入到List<> stock
中的数量) - xanatos