繁体   English   中英

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

[英]Get List of Entity Models in DbContext Entity Framework Core 2.1

我正试图找到一种方法来获取我的DbContext中所有实体模型的列表。 例如,如果我在C#中定义了两个名为Customer和Invoice的模型,通过代码优先创建EF实体和数据库,我现在如何查询DbContext以获取其中包含Customer和Invoice的List-即,那个环境中的所有实体? 我希望能够调用一个返回所有实体的List的方法 - 而不是数据,只是一个实体列表。

在我看来,这应该是如此简单,但要么它不容易,要么我错过了一些东西 - 可能是后者。 ;-)。

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

您可以使用Model属性获取关联的IModel ,然后使用GetEntityTypes方法枚举所有IEntityType ClrType财产IEntityType会给你相关的类类型,如

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

IEntityType有许多有用的属性和(扩展)方法,用于获取有关主/备用键,外键,导航,属性等的信息,以IEntityType

您可以在以下网址查询文档: https ://docs.microsoft.com/en-us/ef/core/querying/related-data

对于前者 如果您将博客和帖子作为两个表格,那么您可以获得相关表格,如下所示。 这取决于两个表中关系的存在方式。

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

using (var context = new BloggingContext())
{
    var blogs = context.Blogs
        .Include(blog => blog.Posts)
        .ToList();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM