Динамическое обращение к модели таблицы в EntityFrameworkCore возможно?
Всем привет. Я делаю веб-приложение Blazor. Я уже подключил базу данных и в моем проекте относительно много моделей таблиц из нее. Я хотел бы выполнять инъекцию не к определенной модели таблицы, а динамически. То-есть прямо в коде выбирается, из какой таблицы извлекутся данные. Тк все мои таблицы имеют одну и ту же структуру и отличаются лишь названием, я не исклчаю, что такой способ есть.
Подскажите пожалуйста. Заранее спасибо!
Подпишусь, тоже интересно.
Первое что приходит на ум - исполнять селект и мапить руками, подставляя имя таблицы.
Второе - в DbContext реализовать метод GetDbSet, который достанет DbSet (или IQueryable) нужного типа.
Сразу уточню, что я новичок в программировании. Есть идея - в отдельном классе установить конструкцию свич кейс, которая бы принимала название таблицы, а отдавала модель(тип). Но моя страсть к автоматизации не может такого позволить.
Насколько я осведомлен (прочитал пару статей), запросы являются небезопасными. Для этого я и решил использовать инъекции.
Не могли бы Вы показать какой-нибудь пример, как можно обратиться таким образом к таблице?
Если коротко, то суть в том, что пользователь выбирает в выпадающем списке название таблицы, которое передается в этот метод. И в этом методе, нужно извлечь определенные данные из указанной таблицы. И вот , я, как раз думаю - как это сделать...
Заранее спасибо!
Чуть ниже, в комментарии на ответ другого пользователя, я указал структуру базы данных (словами, тк диаграммы строить еще не умею). По такому вот сценарию, я написал код, который получает логин пользователя и проверяет его наличие в одной из таблиц, где указано - какие кому доступны таблицы. Далее выпадающий список заполняется элементами, которые получены из выше указанной таблицы. Пользователь выбирает какой либо вариант и дальше программе нужно извлесь данные из выбранной таблицы. Было бы славно, если бы можно было динамически делать селект к указанной модели, например tablemodel[i], где i равно 1, а у нас как раз есть модель таблицы "tablemodel1" :D