entity-framework - 循环遍历 DBContext 上的所有 DBSet(属于 TEntity)

标签 entity-framework entity-framework-6

我正在使用 Entity Framework 6.1、DbContext、数据库优先。 我知道我可以通过以下名称获取 DBset:context.Myobj1、context.Myobj2.....

但是有没有可能做一个 for...each 循环并在 DbContext 上一个接一个地获取所有 DbSet(of Tentity)?

最佳答案

您需要发现实体的类型。这取决于您的应用程序。您可以使用反射来发现这些类型。或者您可以对实体的类型进行硬编码。

在此之后你可以遍历集合:

var types = new [] { typeof(User), typeof(Role) }; // just example

foreach(var type in types)
{
    foreach(var entity in context.DbSet(type))
    { ... }
}

关于entity-framework - 循环遍历 DBContext 上的所有 DBSet(属于 TEntity),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30881896/

相关文章:

c# - Dispose 如何与 Entity Framework 配合使用

c# - 忽略 BinaryFormatter 序列化中的非序列化属性

c# - SQLite 连接未出现在实体数据模型向导中 (vs2015)

oracle - EF + ODP.NET + CLOB = 值不能为空 - 参数名称 : byteArray?

c# - 如何首先在 EF6 代码中设置一个唯一的属性

c# - 如何在 Entity Framework 中使用 join 使输出 Json 对象分级别 - 不是同一级别

c# - 如何使用 Linq 处理带有 FirstOrDefault 的 NULL 对象属性

c# - Entity Framework 6 和 SQLite - 无法使用之前删除的条目的 PK 创建条目

asp.net-mvc - 将我的 ICollection 覆盖为我的 edmx 文件中的 IList 的最佳方法,在 asp.net MVC Web 应用程序中

c# - 在 EF 6/Code First 中通过键查找本地缓存的实体