作者:Yc--Amy_435 | 来源:互联网 | 2022-11-21 13:34
我试图找到一种方法来获取DbContext中所有实体模型的列表。例如,如果我在C#中定义了两个称为Customer和Invoice的模型,这些模型首先通过代码创建了EF实体和一个数据库,那么现在我该如何查询DbContext以获取其中包含Customer和Invoice的列表-即,在这种情况下的所有实体?我希望能够调用一个返回所有实体的列表的方法-而不是数据,只是实体的列表。
在我看来这应该很容易,但是要么不容易,要么我就缺少了一些东西,可能是后者。;-)。
有人能指出我正确的方向吗?谢谢!!
1> Ivan Stoev..:
您可以使用Model属性获取关联的IModel,然后使用GetEntityTypes方法枚举所有IEntityType。ClrType属性IEntityType
将为您提供关联的类类型,例如
DbContext db = ...;
var entityTypes = db.Model.GetEntityTypes().Select(t => t.ClrType).ToList();
IEntityType
有许多有用的属性和(扩展)方法,用于在需要时获取有关主键/备用键,外键,导航,属性等的信息。