Если вы используете ASP.NET MVC, я бы серьезно отнесся к использованию S # arp Architecture . Он использует nHibernate, но предоставляет некоторые леса, чтобы сделать слой данных очень простым для создания и работы с ним. Он использует свободный nhibernate и AutoPersistenceModel, поэтому нет необходимости играть с файлами XML для сопоставлений. Он также включает в себя ряд очень удобных инструментов MVC.
У Linq2SQL, похоже, есть довольно серьезные недостатки, когда я пытался сделать что-то изощренное с этим, и я, вероятно, рекомендовал бы это только для очень простых сценариев. Возможно, это только я, но я наблюдал довольно уродливое поведение с L2S.