实体框架:获取具有特定类型的所有实体
Posted
技术标签:
【中文标题】实体框架:获取具有特定类型的所有实体【英文标题】:Entity Framework : get all entities with specific type 【发布时间】:2017-08-09 22:22:15 【问题描述】:我正在使用 Entity Framework 将数据读/写到数据库中,并想知道是否有办法按类型获取实体。例如:我有Student
表和Clas-s-room
表(实际上,我有一堆表)。我想通过使用类型或实体名称来获取所有学生。基本上我需要一些通用的东西来从数据库中读取数据。
我的解决方案是使用反射来读取返回IQueryable
的DbContext
属性,但似乎应该有另一种方法。如果是这样,有人可以告诉我该怎么做吗?
我需要这样的东西:
dbContext.GetEntities<T>()
或
dbContext.GetEntities(Type entityType)
【问题讨论】:
你想如何指定类型?也许你应该添加一些暂定代码来阐明你想要什么。 我认为它有点不清楚,但不应该关闭。 @marc_s 给出了适当的答案 【参考方案1】:你在找这个吗?
DbSet<T> allEntities = yourDbContext.Set<T>();
您可以将T
替换为您的任何实体类型,例如Student
:
DbSet<Student> allStudents = yourDbContext.Set<Student>();
如果您需要IQueryable
,只需使用.AsQueryable()
:
IQueryable<Student> allStudents = yourDbContext.Set<Student>().AsQueryable();
请研究official MSDN documentation on DbContext
以了解该类的更多详细信息以及更多属性和方法
【讨论】:
以上是关于实体框架:获取具有特定类型的所有实体的主要内容,如果未能解决你的问题,请参考以下文章
如何使用实体框架中的 DBContext 获取在另一列中具有重复数据的所有 ID?