SQLMetal отлично подходит для генерации классов моделей. Мне не очень нравится конструктор LINQ, поэтому, как правило, я буду использовать конструктор на начальном этапе проектирования, и последующие добавления или изменения в модель данных будут выполняться вручную путем редактирования файла dbml.
Я использую эту простую команду для создания своих классов LINQ-to-SQL, которые я поместил в командный файл для максимального удобства:
sqlmetal /code:YourCodeFile.designer.cs /namespace:Desired.Namespace YourModel.dbml
Подход SQLMetal прекрасно работает для меня и является надежным способом генерации кода. Любые рукописные дополнения к сгенерированным классам, конечно, должны храниться в частичных объявлениях классов в отдельном кодовом файле.