Подключение к таблице в базе данных во время выполнения и извлечение данных? - PullRequest
0 голосов
/ 24 сентября 2019

На данный момент у меня есть контекст БД для хранения всей информации о пользователях, которая мне понадобится, и теперь я хочу позволить пользователю указать соединение с БД во время выполнения (например, интерфейс).

В связи с этим я хочу добиться следующего:

  • Найти все таблицы в дБ
  • Получить данные из таблицы в бэкэнд, чтобы передать их на мой фронт-end (я буду использовать нумерацию страниц)
  • Я хочу обеспечить фильтрацию для этой таблицы на внешнем интерфейсе, поэтому мне нужно знать типы столбцов?

Мой вопрос заключается в том, что я могу использовать для обеспечения этой функциональности, я не думаю, что ядро ​​EF отвечает моим потребностям в этой ситуации.Могу ли я использовать ADO.net для выполнения операторов SQL, чтобы получить схемы и т. Д., А затем обработать это в своем бэкэнде?или есть более известная технология, которую я могу использовать?

1 Ответ

0 голосов
/ 24 сентября 2019

Вы должны использовать TSQL или Sproc для получения информации такого типа.

  1. Чтобы найти все таблицы
select * from sys.tables
Чтобы найти типы столбцов
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = N'db_MYTABLENAME'

Затем вы можете обработать это на своем бэкэнде

Для использования EFCore вы можете использовать звездочку, подобную этой

        public virtual List<sproc_TableData_Result> sproc_TableData(string tablename)
        {
            var TableParameter = new SqlParameter("table_name", tablename);

            var qry = new RawSqlString(@"EXEC sproc_TableData @tablename);

            return Set<sproc_TableData_Result>().FromSql(qry, TableParameter).ToList();
        }

Это позволит вам вернуть объекты, которые вы можете обработать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...