Я бы сказал, перейдите с LINQ to SQL, если вашему приложению нужны только базовые функции, в противном случае используйте NHibernate. Я знаю немного о LINQ, и я изучаю NHibernate, и из того, что я могу сказать, NHibernate является лучшим долгосрочным решением, поскольку оно более абстрактное, чем L2S (который довольно тесно связан с базой данных), но L2S легче выбрать и обеспечивает более быстрое решение.
Не зная больше о вашей конкретной проблеме, я бы сказал, используйте NHibernate, поскольку он более гибок и реагирует на изменения, хотя и с немного более «корпоративной» кривой обучения, чем Linq to Sql. Для хорошего ресурса NHibernate я рекомендую проверить сериал Стива Болена "Лето NHibernate" .