В примере NerdDinner они используют шаблон репозитория, чтобы отделить бизнес от уровня данных. Но затем они используют классы, сгенерированные Linq to SQL (в частности, Dinner) в качестве класса сущности, используемого на протяжении всего проекта. Так насколько же это развязано на самом деле? Не похоже, чтобы вы могли легко заменить Linq-to-SQL.
В моем последнем проекте я создал отдельный класс сущности, который я заполнил с помощью left / right в запросе linq, потому что обнаружил, что даже если вы используете часть сгенерированного linq, вы не можете заполнять какие-либо дополнительные поля, которые вы добавляете во время запроса.