Я предпочитаю способ DataTables, потому что я стар, устал и скептически отношусь к модам, таким как Subsonic и Linq.
Кроме того, когда вы работаете с ORM, вы обычно сводите к минимуму то, что делаете в SQL. Вы не вкладываете много логики в SQL и не объединяете несколько операторов SQL для выполнения нескольких операций за одну поездку в базу данных. Поэтому вы склонны чаще обращаться к базе данных, и это сильно сказывается на производительности.
Используя наборы данных, я могу сделать что-то вроде:
выберите col1, col2 ... из таблицы1
выберите col1, col2 ... из таблицы2
выберите col1, col2 ... из таблицы3
и затем совершите ОДНУ поездку в базу данных, чтобы получить все три набора данных, используя таблицы [0], таблицы [1], таблицы [2] для ссылки на них. Это очень сильно влияет на производительность.
Когда-нибудь, возможно, взаимодействие с базой данных будет настолько быстрым, что не будет смысла в пакетировании SQL, но этот день еще не наступил. Когда это произойдет, я переключусь на ORM, но до тех пор я хочу, чтобы мой код был немного уродливым в обмен на производительность. Пользователям неинтересно пользоваться медлительным приложением.
Наконец, мне нравится SQL. Я хорошо разбираюсь в SQL. Действительно хорошо. Я не хочу тратить свое время на выяснение того, как заставить Linq генерировать SQL, который я хочу. Это снизит производительность MY .