Entity Framework Core:获取所有表的列表

3 c# entity-framework entity-framework-core .net-core asp.net-core

如何在 db 上下文中获取 Entity Framework Core 中所有表的列表?

以下答案适用于 Entity Framework 5 中的先前版本,我们目前使用的是 EF Core 3。

如何获取 EF 5 中所有实体的列表?

实体框架 - 获取表列表

var tableNames = context.MetadataWorkspace.GetItems(DataSpace.SSpace)
                        .Select(t => t.Name)
                        .ToList();
Run Code Online (Sandbox Code Playgroud)

我们只想在带有 EF Core 的报告中显示所有数据库。原始 Sql 是select * from sys.tables or information_schema.tables,但是正在寻找 EFCore 方式

Iva*_*oev 6

数据库中所有表的列表 - 没有。映射到上下文的所有实体的列表以及有关它们的数据库映射(表、列、索引等)的信息 - 当然。您将使用比 EF 更直观的 EF Core 元数据 API。从 的Model属性开始DbContext并探索可用的(扩展)方法。

例如:

var tableNames = context.Model.GetEntityTypes()
    .Select(t => t.GetTableName())
    .Distinct()
    .ToList();
Run Code Online (Sandbox Code Playgroud)