Я уже прошел этот путь, и единственный надежный способ - отойти от пути sqlmetal.exe / dbml и подключиться к генератору пользовательских классов, например шаблонам LINQ to SQL для T4.
http://l2st4.codeplex.com/
Причина, по которой вам нужно использовать что-то вроде этого, заключается в том, что вам нужно, чтобы ваш генератор классов извлекал информацию о пользовательских изменениях из другого источника. Я закончил тем, что вставил custom в сгенерированный XML, который традиционно использует Dbml. Затем я изменил шаблоны t4, чтобы выкладывать нужные классы.
Предупреждение: в итоге это стало полным кошмаром для реализации и было отброшено в пользу файла блокнота пользовательских изменений. Нам просто нужно прожечь их по мере необходимости. IMO, это один из самых слабых мест Linq2SQL и большая причина, по которой я исследовал другие ORM для будущих проектов.