我正试图抓住数据源的Selected
事件上的实体,如此
protected void edsRetailer_OnSelected(object sender, EntityDataSourceSelectedEventArgs e)
{
if(e.Results == null) return;
var list = (IEnumerable<Retailer>) e.Results;
}
演员表失败并出现以下错误
Unable to cast object of type 'System.Data.Objects.ObjectView`1[CCBusiness.Retailer]' to type 'System.Collections.Generic.IEnumerable`1[CCBusiness.Retailer]'
我尝试将其投射到ObjectView
,但是当我尝试投射它时,该类似乎不存在。
答案 0 :(得分:1)
您不必将e.Results
强制转换为ObjectView
,因为这已经是返回类型。 (此外,System.Data.Objects.ObjectView
是一个内部类)。但重点是它实现了IEnumrable
(作为IBindingList
的一部分),而不是IEnuerable<T>
。
将非通用IEnumerable转换为通用IEnumerable的常用方法是Cast<T>
方法:
var list = e.Results.Cast<Retailer>();