The Select() is used through ADO.NET on the data table to get any rows that have an added, modified, or deleted row state. The same logic is taken into account during a save. So you should not experience any performance issues in this regard. Just so you know, the current data table is enumerated (not the view) when checking any to see if a row needs to be checked for validation, so the applied filter is ignored there as well. In short, the save and row checking only looks at rows that have been modified, deleted, or added.