Ядро платформы Entity Framework и получить список таблиц из базы данных sqlite - PullRequest
0 голосов
/ 28 марта 2019

Мне нужен список таблиц, которые существуют в базе данных sqlite, и у меня есть простой запрос, который выглядит следующим образом:

SELECT name from sqlite_master WHERE type='table';

Но теперь мне нужно выполнить это, используя ядро ​​Entity Framework, поэтому я связываю это с DataContext, и вот где я застрял, поскольку контекст данных содержит все представления таблиц в виде набора db, но не системных таблиц sqlite, я попытался использовать запрос к открытому фасаду базы данных, но он не возвращает никаких других значений, кроме числа строк, на которые он воздействовал, что-то вроде:

using (var ctx = new DataContext())
{
    var query = @"SELECT name from sqlite_master WHERE type='table';"
    string[] result = ctx.Database.ExecuteSqlCommand(query);
    return result;
}

Есть ли другой способ получить эту информацию?

1 Ответ

4 голосов
/ 28 марта 2019

Вы можете напрямую использовать команды ADO.NET с EntityFrameworkCore

using (var ctx = new DataContext())
{
    using (var command = ctx.Database.GetDbConnection().CreateCommand())
    {
        command.CommandText = "SELECT name from sqlite_master WHERE type='table'";
        ctx.Database.OpenConnection();
        using (var result = command.ExecuteReader())
        {
            while (result.Read())
            {
                Console.WriteLine(result.GetString(0));
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...