获取DbContext Entity Framework Core 2.1中的实体模型列表

时间:2019-01-14 19:20:48

标签: c# ef-core-2.1 .net-core-2.1 entity-framework-core-2.1

我试图找到一种方法来获取我的DbContext中所有实体模型的列表。例如,如果我在C#中定义了两个称为“客户”和“发票”的模型,这些模型首先通过代码创建了EF实体和一个数据库,那么现在我该如何查询DbContext以获得包含“客户和发票”的列表-即,在这种情况下的所有实体?我希望能够调用一个返回所有实体列表的方法-而不是数据,只是实体列表。

在我看来这应该很容易,但是要么不容易,要么我就缺少了一些东西-可能是后者。 ;-)。

有人可以指出正确的方向吗?谢谢!!

2 个答案:

答案 0 :(得分:7)

您可以使用Model属性来获取关联的IModel,然后使用GetEntityTypes方法来枚举所有IEntityTypeIEntityType的{​​{3}}属性将为您提供相关的类类型,例如

DbContext db = ...;
var entityTypes = db.Model.GetEntityTypes().Select(t => t.ClrType).ToList();

IEntityType具有许多有用的属性和(扩展)方法,可在需要时获取有关主键/备用键,外键,导航,属性等的信息。

答案 1 :(得分:0)

您可以在以下位置引用文档:https://docs.microsoft.com/en-us/ef/core/querying/related-data

例如如果您将博客和帖子分为两个表格,则可以获取相关表格,如下所示。这取决于在两个表中如何显示关系。

您还可以添加where子句以仅获取选定的记录。

Map<Long, int>