В приложение с использованием Entity Framework необходимо программно добавить столбец в базу данных
Сразу скажу что прекрасно понимаю что суть моего вопроса в целом противоречит концепции использования базы данных и я знаю что мой визуальный интрефейс должен определятся моей базой и контекстом, а не наоборот. Но в университете мне дали задание написать приложение в котором будет представлен визуальный интерфейс(я решил остановится на WPF потому что в вебе почти ничего не знаю, но если кто то сможет предложить решение для веба буду благодарен) и база данных ( я решил использовать EF для работы с бд потому что база данных достаточно большая и писать кучу sql скриптов с использование Ado.net нет никакого желания, однако опять же если есть решение с использованием этой технологии буду благодарен). Так вот будет визуальный интерфейс и база данных с кучей функционала высшей точкой бреда которого требуется предоставить пользователю возможность самому через UI добавить и удалять колонку из базу данных и заполнять ее, то есть есть условный DataGrid в котором представлены наши начальные данные с базы, по нажатию на кнопку требуется ввести тип и имя новой колонки и она добавляется в базу и UI и через сам UI должна быть возможность ее заполнить. Я готов рассмотреть любые костыли если кто то знает как можно это релизовать, хотя бы чтоб это работало в текущей сессии, тоесть по нажатию на кнопку колонка добавилась в UI ее заполнили, а при перезапуске приложения эта колонка просто томится где то в недрах самой бд и пользователь о ней не узнает. Прошу не ставить негативные отзывы без комментариев ибо я и сам понимаю что вопрос жутко бредовый, но сам придумать такие костыли я не в состоянии
Ответы (1 шт):
Оставлю это здесь может кому то поможет в будущем справиться с подобным странным заданием. В своем приложении я использовал одновременно EntityFramework для описания заранее известной части бд, и SQL запросы чтобы обрабатывать новые динамически введенные колонки в базе, и также на основе этих данных полученных SQl запросом я генерирую новые дополнительные в UI. Но вообще если уже есть такая задача то лучше вынести динамическую часть работы в отдельную админ панель в приложении, а основное приложение будет работать с заранее описанными данными и при желании используя миграции можно будет переписать код и подключить те самые столбцы добавленные в админ панели в уже существующую структуру.