Один из подходов, который я использовал в прошлом, - это создание общих столбцов, например, int1, int2, ... intn, varchar1, varchar2, ..., varcharn и т. Д. Это имеет свои преимущества и недостатки. Это не чистый от БД, соответственно (некоторые администраторы будут в ужасе). Но с SQL Severs поддержка разреженных столбцов не является проблемой. Таким образом, вы можете иметь действительно широкий стол. Но вам нужно будет хранить метаданные где-нибудь, например, varchar1 -> Name, int1 -> Age и т. Д.
Теперь вы можете писать обычные запросы sql / ef, поиск стал проще, SSRS прост (без разбора xml).
Я тоже хотел бы знать, есть ли лучшее решение.