Синглтон обычно считается анти-паттерном в наши дни.Это не означает, что не существует ситуаций, когда вы хотите гарантировать, что существует только один экземпляр определенного типа ... но лучшим решением является использование контейнера с инверсией управления (IoC), такого как StructureMap, чтобы обернуть вашвведите синглтон.Я полагаю, что блок «Внедрение политики» в Enterprise Library также сделает это.
По моему опыту, LINQ to SQL ограничен в том, что вы можете сделать, что касается обработки отношений ... вы можете легко получить дополнительный запросдля каждой связанной таблицы.Мы ожидаем перехода на NHibernate, поскольку дополнительные запросы становятся проблемой производительности.