Модель «Единственное наследование таблиц» - единственная поддерживаемая LINQ to SQL. В этой модели вы устанавливаете столбец (тип) дискриминатора и указываете, какой тип объекта создать, основываясь на значении в дискриминаторе. Каждый тип экземпляра может иметь разные свойства поля. Столбцы, которые не используются всеми типами, должны быть установлены как обнуляемые, чтобы нулевые значения использовались при вставке других столбцов для данного типа.
При этом я не уверен, что вам нужна именно эта модель из вашего заявления о том, что вы "устали от изменения и добавления таблиц для разных требований клиентов". Подход с использованием одной таблицы требует, чтобы вы не только добавляли необходимые дополнительные столбцы в таблицы для новых типов, но также генерировали новые классы и компилировали приложение, чтобы учесть эти новые требования.
Возможно, вы захотите рассмотреть один из подходов базы данных пары ключ-значение / NoSql (http://en.wikipedia.org/wiki/Key-value_store#Key-value_store). В модели ключ-значение у вас есть отдельная строка для каждого свойства вашего объекта, где строка состоит из objectId , propertyName и Value. Эта структура данных позволяет вам иметь любую форму, не меняя схему базы данных. К сожалению, в LINQ нет встроенного механизма для принятия гибких моделей данных и их сопоставления с плоскими объектами. если хотите, создайте его с помощью динамических типов в .NET 4. Добавление пользовательского интерфейса и бизнес-логики - еще одна задача.