Если основной целью является сохранение нескольких дополнительных полей для существующих объектов домена, то почему бы не создать общую таблицу, которая может хранить пары ключ-значение.Это чрезвычайно гибко, поскольку нет необходимости менять схему, если клиенту требуется новое свойство.
Мы делаем это часто и обычно у нас есть помощники для правильного приведения свойств, например
Service.GetProperty<bool>("SomeCustomProperty")
Если вы ищете более «подключаемую» модель домена, которая может быть совершенно разной для каждого арендатора, я думаю, вам будет сложно, если вы будете следовать подходу, основанному на базе данных, и использовать конструктор L2S для генерации кода,
Чтобы достичь этого, вам действительно необходимо создать базу данных на основе вашего кода (проектирование на основе домена), что даст вам гораздо большую гибкость, т.е. вы можете загрузить специфическую для арендатора конфигурацию (набор классов, бизнес-правила и т. Д.)) во время выполнения и используйте это для генерации / проверки вашей схемы.
Обновление
Было бы хорошо, если бы вы могли точно определить, какой подход к проектированию вы выбрали, т.е. используете ли вы дизайнер Linq исоздание вашей модели из базы данных?
Понятно, что хранилище пар общих значений ключей не будет отвечать вашим требованиям к запросам.
Трудно найти решение, не предлагая другую технологию.Реляционные базы данных SQL на самом деле не подходят для моделей динамических доменов.Возможно, вам лучше использовать базу данных документов, такую как MongoDb или RavenDb , где вы не привязаны к определенной схеме.Вы могли бы даже использовать эти только для ваших пользовательских свойств.
Если это не идеально, тогда другим решением было бы использовать что-то вроде Dapper для построения ваших запросов.Предполагая, что вы разрабатываете на основе интерфейсов, у вас может быть реализация службы данных для каждого арендатора, которая использует их настраиваемые поля.
Айенде опубликовал целый ряд публикаций по вопросам Multitenancy и охватывает модели доменов, специфичные для арендаторов.Она начинается здесь и может быть вам полезна.