c# - Entity Framework 核心并从sqlite数据库获取表列表

标签 c# sqlite entity-framework-core

我想要 sqlite 数据库中存在的表列表,并且我有一个简单的查询,如下所示:

SELECT name from sqlite_master WHERE type='table';

但现在我需要使用 Entity Framework 核心执行此操作,因此我将其绑定(bind)到 DataContext,这就是我陷入困境的地方,因为数据上下文包含表的所有表示形式作为数据库集,但不包含 sqlite 系统表,我尝试使用对公开的数据库外观进行查询,但它不返回任何其他值,然后返回它所影响的行数,例如:

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

还有其他方法可以获取该信息吗?

最佳答案

您可以直接将 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));
            }
        }
    }
}

关于c# - Entity Framework 核心并从sqlite数据库获取表列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55394827/

相关文章:

c# - 使用 LINQ 选择列中的所有不同值

c# - 为过时的 C# 事件生成警告

unix - SqLite3 NFS 挂载问题与锁定 - 我可以使用类似 CIFS nobrl 的东西吗?

android - 如何在Android SQLite中选择一些行后选择剩余的行?

c# - 克隆对象并将克隆保存到数据库会导致原始对象丢失关系数据

c# - 自升级到 EF 2.1 后,找不到实体类型的属性 ''

c# - WPF DateTimeUpDown 绑定(bind)问题

ios - 尝试建立 SQLite 连接/语句时应用程序崩溃

c# - 影子主键

c# - Visual Studio 中有没有办法从空 ASP.NET Web 应用程序开始配置 Web 部署的默认起始页?