Мы использовали дизайнер все время. Это действительно вводит дополнительный шаг, каждый раз, когда вы вносите изменения в схему, вам нужно снова импортировать таблицу в конструктор, но я думаю, что результат побледнеет по сравнению с объемом кода, который вам нужно написать, если вы обходите десгинатор.
Также обратите внимание, что дизайнер создает частичные классы, вы можете создать дополнительный файл для частичного класса, который включает в себя дополнительные детали реализации. Таким образом, когда таблица обновляется в конструкторе, она оставляет вам дополнительный код в покое. Мы делаем это, чтобы добавить множество вспомогательных функций в классы, а также предоставить строго типизированные перечисляемые свойства, которые перекрывают примитивные целочисленные поля FK.
Это правда, что наследование было бы очень трудно выполнить хорошо, но я думаю, что если вам нужен такой уровень данных, L2S может быть не лучшим решением. Я предпочитаю поддерживать уровень данных в чистоте и простоте, просто используя L2S для ввода и вывода данных, а затем используя более сложную логику на бизнес-уровне. Если бы нам действительно нужно было выполнять такие вещи, как наследование объектов на нашем уровне данных, я бы, вероятно, исследовал более продвинутую и сложную технологию, такую как EF