【发布时间】:2012-01-30 21:07:29
【问题描述】:
我有一个使用 linq to SQL 进行的查询,其结果将显示在带有排序和过滤选项的 datagridview 中。
public IQueryable RegresaDepositosBancarios()
{
var depositos = from d in context.depositos_bancarios
where d.Aplicado == false
orderby d.FechaDeposito ascending
select new
{
d.IDDeposito,
d.cuentas_bancarias.Nombre,
d.Monto,
d.FechaDeposito,
d.Observaciones
};
return depositos ;
}
稍后在我的代码中,我将数据源设置为使用以前的结果。
var depositos = operaciones.RegresaDepositosBancarios();
dataGrid_depositos.DataSource = depositos;
如您所见,我正在返回匿名类型的 IQueryable,我无法对此执行排序或过滤。我读到你可以实现一个自定义函数来将 IQueryable 转换为 DataView 然后使用 RowFilter 属性,这是更有效的方法吗?在我的函数中返回其他类型会更好吗?
欢迎提出建议
【问题讨论】:
-
那么您认为哪种方法(在给出的链接中描述)更适合我的情况? SortableBindingList 或将结果转换为 DataTable?
-
我必须承认我从来没有使用过带有 LINQ 的 DataGridView 作为数据源。但这两种方法似乎各有利弊,一种可能更快且类型安全,另一种可能较慢(使用反射)但更易于维护。
标签: c# linq iqueryable