实体框架:获取具有特定类型的所有实体

Dil*_*hod 0 c# database orm entity-framework entity-framework-6

我正在使用Entity Framework将数据读/写到DB,并且想知道是否存在一种按类型获取实体的方法。例如:我有Student桌子和Classroom桌子(实际上,我有一堆桌子)。我想使用类型或实体名称来吸引所有学生。基本上,我需要一些通用的东西来从数据库读取数据。

我要解决的方法是使用反射读取DbContext返回的属性IQueryable,但似乎应该有另一种方法。如果是这样,有人可以告诉我该怎么做吗?

我需要这样的东西:

dbContext.GetEntities<T>()

要么

dbContext.GetEntities(Type entityType)
Run Code Online (Sandbox Code Playgroud)

mar*_*c_s 5

您在找这个吗?

DbSet<T> allEntities = yourDbContext.Set<T>();  
Run Code Online (Sandbox Code Playgroud)

您可以在其中替换T任何实体类型,例如Student

DbSet<Student> allStudents = yourDbContext.Set<Student>();  
Run Code Online (Sandbox Code Playgroud)

如果需要IQueryable,只需使用.AsQueryable()

IQueryable<Student> allStudents = yourDbContext.Set<Student>().AsQueryable();  
Run Code Online (Sandbox Code Playgroud)

请学习的正式MSDN文档,DbContext以获取有关该类的更多详细信息以及更多属性和方法。