我正在构建一个Windows窗体应用程序,在许多这些窗体上,我使用了一个链接到LinqToSql对象的BindingSource。我还有一个使用BindingSource的DataGridView。这非常好用,并且所有的创建/编辑/更新都能正常工作。
但是当我在Filter属性中放入一个字符串时,这样:
VesID='ABC'
它不会过滤。我需要一个特殊的语法来使过滤器与对象数据源一起工作吗?
答案 0 :(得分:1)
什么是绑定源SupportsFiltering
?
我打赌它是false
,因为LINQ不支持开箱即用的动态查询。
为什么还要动态查询呢? LINQ完全是关于类型安全的,你真的应该使用Where
的内置过滤:
var query = db.Customers.Where(x => x.VesID == "ABC");
grid.DataSource = query;
如果你真的做需要指定一个字符串过滤条件(很少 ),请查看两个库:PredicateBuilder和{ {3}}