我正在使用Linq
查询来填充GridView
。
然后我将其设置为Datasource
。
在排序事件中,我想检索查询生成的匿名类型并找到成员名称。
是否可以这样做?
这是查询的例子
var q = from inboundCall in dc.GetTable<InboundCall>()
join employee in dc.GetTable<Employee>() on inboundCall.EmployeeID equals employee.ID
join code in dc.GetTable<Code>() on inboundCall.CodeID equals code.ID
join site in dc.GetTable<Site>() on inboundCall.SiteID equals site.ID
where inboundCall.IsSuccess == true
select new
{
EmployeeNumber = employee.Number,
EmployeeName = employee.Name,
CallerID = inboundCall.CallerID,
SiteName = site.Name,
CallDate = inboundCall.CallDate,
CodeName = code.Name
};
然后
gridData.DataSource = q;
我可以在排序事件中做些什么来解除匿名类型并执行类似的操作
employeeList.Sort((x, y) => ((Int32)x.GetType().GetProperty(e.SortExpression).GetValue(x, null)).CompareTo((Int32)y.GetType().GetProperty(e.SortExpression).GetValue(y, null)) * sortValue);
答案 0 :(得分:0)
您可以使用反射执行此操作,也可以使用动态LINQ库添加OrderBy子句。
或者,更好的选择可能是创建一个代表您将检索的数据的实际类/结构。