Основываясь на личном опыте, я стараюсь избегать Datatable.Select. Я считаю, что это медленно и имеет некоторые странные ошибки.
Одна (подтвержденная и задокументированная Microsoft) ошибка, с которой я столкнулся, заключалась в том, что DataTable.Select не всегда правильно оценивает условия AND, когда в операторе есть скобки.
Например, (Col1 > 1) AND (Col ‹ 10) может не дать правильных ответов, тогда как Col1 > 1 AND Col ‹ 10 будет работать правильно.
Эта ошибка проявляется не на каждом компьютере. В моем случае проверка, которую я использовал, работала нормально на моей платформе разработки и на всех клиентских компьютерах, кроме одного. После того, как я обнаружил эту ошибку, я начал переходить на использование LINQ для выбора и заметил значительное увеличение скорости операций.
Примечание: не вдаваясь в длинные объяснения, моя компания не использует базу данных для хранения данных. Все наши операции с DataTables связаны с таблицами памяти, загружаемыми из плоских файлов. Так что я говорю не о LINQ 2 SQL, а о LINQ to Dataset.
person
RB Davidson
schedule
14.09.2009