Я не думаю, что вы могли бы использовать EF или другую среду ORM без изменений.Вам понадобится пользовательский код, но нам нравится создавать новые вещи, не так ли?
Я вижу два неплохих решения:
1) Аналогично вашему 1. решению, используйте 2 таблицы,один с определением столбцов и второй для данных.Например, ваша таблица определений может выглядеть следующим образом:
Name Type Description
MyColumn1 int int column
MyColumn2 string string column
Таблица данных содержит общие именованные столбцы, заполненные фактическими данными.
Col1 Col2
1 string 1
2 string 2
Когда вы запрашиваете «тип данных», вы читаете«определение», а затем запросить фактические данные.Вы можете хранить дополнительные атрибуты в таблице определений, например, валидаторы ...
3) Если вы используете MS SQL> = 2008, третье решение выглядит как хорошее.Я все еще рекомендую отдельную таблицу для каждого «типа данных».
Я не рекомендую решение 2, это выглядит как плохой взлом.Решение 4. выглядит чисто, но этот подход не подходит для больших наборов данных.