关于petapoco中Select<>使用的问题!想使用泛型解决DAL统一查询。

下面是方法代码和报错信息
DAL调用petapoco的方法
图片说明
petapoco底层中的原本方法。图片说明
实际上应该返回一个Model.Class实体类,但是在DAL中定义的是泛型所以只有用Object代替。返回的结果无法取出其中的值。也无法强制转换为Class实体类。希望大牛能。。。帮个忙。

图片说明

protected void ddl_DataBind()
{
Telerik.Web.UI.RadComboBoxItem item = new Telerik.Web.UI.RadComboBoxItem();
item.Text = "所有班级";
item.Value = "";
Class_Rcbox.Items.Add(item);
var lis = editor.select("select distinct(className) from Class");
for (int i = 1; i <= lis.Count; i++)
{
Telerik.Web.UI.RadComboBoxItem nItem = new Telerik.Web.UI.RadComboBoxItem();
nItem.Value = lis[i-1].className + "";
nItem.Text = lis[i - 1].className + "";
Class_Rcbox.Items.Add(nItem);
}

    //*//
}


    图不会添加,上面是一个调用方法。

public List select(string sql, params object[] obj)
{
return ds.Fetch(sql, obj);
}

            ///在DAL中这样调用petapoco的方法

public List Fetch(string sql, params object[] args)
{
//var i = Query(sql, args);
return Query(sql, args).ToList();
}
petapoco中的原始方法。

我查看lis中的值有17个然后值类型是这个。我根本取不出来这个值。 [0] = {System.Dynamic.ExpandoObject}

查到了问题是dynamic视图模式转换匿名对象失败。有人说用反射,但是反射应该怎么写呢?