对与EF实体同步的支持列表进行排序和筛选

时间:2012-08-24 14:02:51

标签: c# entity-framework datagridview

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

This似乎就像我需要的那样,但它在上升(我认为是β?)EF 5,而我仍然只在EF 3.5上。我需要在旧版本中模仿该功能。

我发现wrapper使我能够排序,但没有过滤,我无法确定在此包装器中添加过滤器支持的路径。这个包装器也失去了与QueryObject的同步,但我认为这并不难解决。

1 个答案:

答案 0 :(得分:0)

您可以扩展BindingSource以根据显示的数据和实际数据创建分离。之后,使用Dynamic 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);