C# 实体框架核心:获取所有表的列表

C# 实体框架核心:获取所有表的列表,c#,entity-framework,asp.net-core,.net-core,entity-framework-core,C#,Entity Framework,Asp.net Core,.net Core,Entity Framework Core,如何在数据库上下文中获取实体框架核心中所有表的列表 以下答案适用于Entity Framework 5的早期版本,我们目前使用的是EF Core 3 我们只想用efcore在一个报告中显示所有数据库。原始Sql是从sys.tables或information\u schema.tables中选择*的,但是正在查找EFCore way数据库中所有表的列表-否。映射到上下文的所有实体的列表以及有关其数据库映射(表、列、索引等)的信息-确定。您将使用比EF更直观的EF核心元数据API。从DbCon

如何在数据库上下文中获取实体框架核心中所有表的列表

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


我们只想用efcore在一个报告中显示所有数据库。原始Sql是从sys.tables或information\u schema.tables中选择*的,但是正在查找EFCore way

数据库中所有表的列表-否。映射到上下文的所有实体的列表以及有关其数据库映射(表、列、索引等)的信息-确定。您将使用比EF更直观的EF核心元数据API。从
DbContext
Model
属性开始,探索可用的(扩展)方法

例如:

var tableNames = context.Model.GetEntityTypes()
    .Select(t => t.GetTableName())
    .Distinct()
    .ToList();

核心中没有这样的方法。但是,您可以使用原始查询。虽然如果你解释这个用例,可能还有其他方法,我们只是想用EF Core在一个报表中显示所有数据库,但我相信原始sql是select*from sys.tables,或INFORMATIO in_schema.tables,但是寻找EFCore方式,cc@TheGeneralhi也许你可以帮助解决这个问题?谢谢
var tableNames = context.Model.GetEntityTypes()
    .Select(t => t.GetTableName())
    .Distinct()
    .ToList();