0

我需要编写一个包装器,它允许我对 QueryObject 进行排序和过滤,而不会丢失对象的同步功能(它用于 DataGridView 数据绑定)。

似乎是我需要的,但它在即将到来的(我认为是测试版?)EF 5 中,而我仍然只在 EF 3.5 上。我需要在旧版本中模仿该功能。

我找到了一个包装器,它使我能够排序,但不能过滤,我无法弄清楚在这个包装器中添加过滤器支持的路径。这个包装器也失去了与 QueryObject 的同步,但我认为这并不难修复。

4

1 回答 1

0

您可以扩展 BindingSource 以将显示的数据和实际数据分开。之后,使用动态 LINQ,可以编写适用于任何类型数据的过滤器方法。

if (f.Value.type == AdvFilterTypes.Contains)
    tmpList = tmpList.AsQueryable().Where(f.Value.property + ".Contains(\"" + f.Value.condition.Replace(@"\", @"\\").Replace("\"", "\\\"") + "\")");
else
    tmpList = tmpList.AsQueryable().Where(f.Value.property + " " + f.Value.typeSymbole + " " + f.Value.condition);
于 2012-10-15T13:51:18.460 回答