Можно ли по-прежнему использовать Linq-to-sql?
Да.Можно использовать любую технологию, которая позволяет вам доставить продукт вовремя, с необходимой функциональностью и качеством.Вы все еще можете найти проекты, используя ASP, ADO, VB6.Одна из причин, по которой технологиям Microsoft приходится очень тяжело во многих международных корпорациях, заключается в том, что их продукты имеют очень короткий срок службы.Linq-to-sql был на рынке менее 2 лет и был признан устаревшим Microsoft, но компании / сообщества спорили об этом, и Microsoft немного изменила свою стратегию.Linq-to-sql не имеет новых функций, но он все еще поддерживается и является полностью функциональной технологией.
Решит ли Linq-to-sql или EF ваши проблемы?
Это зависит.Возможно да и возможно нет.Не верьте маркетинговым объявлениям о RAD.Иногда мне кажется, что люди думают, что RAD - это дизайнер. Нет .Инструменты, поддерживающие RAD, представляют собой четко определенный API, который прост для понимания, прост в использовании и не содержит неожиданного поведения ( Принцип наименьшего удивления ) - вы будете использовать API для быстрого создания прототипа приложения, но оно все равнотребует понимания и практики.Отображение NHibernate все еще является прототипом, когда вы сравниваете его с ручным доступом к данным.Мы можем даже следовать основному правилу хорошей структуры: простые вещи легко сделать, а сложные возможны.Это то, что NHibernate делает намного лучше, чем EF или Linq-to-sql.
Если вы знаете NHibernate, но у вас нет реального опыта работы с EF или Linq-to-sql, вы можете быть уверенычто ни Linq-to-sql, ни EF не повысят вашу производительность в первом или двух проектах, где вы его используете.Если у вас нет большого опыта с переходом NHibernate на EF или Linq-to-sql, вероятно, это не приведет к временной потере производительности.
Я также не думаю, что EF или Linq-to-sql, как правило, помогут вам в ситуациях, когда изменяется база данных.Как я помню, в Linq-to-sql конструкторе вообще нет функциональности отображения обновлений, и поэтому он очень часто используется полностью без дизайнера, поэтому вам все равно придется вручную изменять отображение.Модель обновления EF из базы данных может быть полезна здесь, но это не серебряная пуля.Некоторые обновления могут потребовать ручного изменения файла EDMX (огромный XML).
Наконец, имейте в виду, что функции сопоставления NHibernate гораздо более эффективны, особенно при работе с устаревшими базами данных.Функции отображения Linq-to-sql очень ограничены, в большинстве случаев это отображение таблиц в классы 1: 1 с некоторыми исключениями (базовое наследование TPH).EF предлагает более сложные функции отображения, но он каким-то образом ожидает правильного проектирования базы данных.