如何从entitydatasource绑定到detailsview获取返回的实体?

时间:2013-11-08 20:35:58

标签: c# entity-framework entitydatasource

我正试图抓住数据源的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,但是当我尝试投射它时,该类似乎不存在。

1 个答案:

答案 0 :(得分:1)

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

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

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