如何从实体数据源绑定到详细信息视图获取返回的实体



我正在尝试像这样抓取数据源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,但是当我尝试将其转换为该类时,该类似乎不存在。

您不必将e.Results转换为ObjectView,因为这已经是返回类型。(此外,System.Data.Objects.ObjectView是一个内部类)。但关键是它实现了IEnumrable(作为IBindingList的一部分),而不是IEnuerable<T>

将非泛型 IEnumerable 转换为泛型的常用方法是Cast<T>方法:

var list =  e.Results.Cast<Retailer>();

相关内容

  • 没有找到相关文章

最新更新