Windows Form BindingSource到LinqToSql无法应用“过滤器”属性

时间:2011-08-01 11:42:32

标签: linq filter objectdatasource bindingsource

我正在构建一个Windows窗体应用程序,在许多这些窗体上,我使用了一个链接到LinqToSql对象的BindingSource。我还有一个使用BindingSource的DataGridView。这非常好用,并且所有的创建/编辑/更新都能正常工作。

但是当我在Filter属性中放入一个字符串时,这样:

VesID='ABC'

它不会过滤。我需要一个特殊的语法来使过滤器与对象数据源一起工作吗?

1 个答案:

答案 0 :(得分:1)

什么是绑定源SupportsFiltering
我打赌它是false,因为LINQ不支持开箱即用的动态查询。

为什么还要动态查询呢? LINQ完全是关于类型安全的,你真的应该使用Where的内置过滤:

var query = db.Customers.Where(x => x.VesID == "ABC");
grid.DataSource = query;

如果你真的需要指定一个字符串过滤条件(很少 ),请查看两个库:PredicateBuilder和{ {3}}