代码之家  ›  专栏  ›  技术社区  ›  Micheal Johnson

使用实体框架6“预构造”查询的一些方法

  •  1
  • Micheal Johnson  · 技术社区  · 7 年前

    我正在使用实体框架6开发一个数据库应用程序。在一个地方,我需要根据用户输入组装一个查询,然后将该查询返回给调用者。我无法自己运行查询并返回结果集,因为调用方需要存储查询,以便在刷新UI后再次运行。我也无法返回 IQueryable 表示已组装的查询,因为这仅对其所针对的上下文有效。

    我已经考虑过使用 CompiledQuery.Compile 但这不适用于 DbContext 实体框架6中的基类。我需要这样做,预编译/预组装/预构造一个查询,该查询可以返回并稍后再次运行,但这适用于实体框架6。我不在乎查询是以委托或其他形式返回的,我只需要一些独立于任何特定上下文实例来表示查询的东西。

    如何使用Entity Framework 6预构造并返回查询,以便可以针对不同的上下文实例多次运行?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Micheal Johnson    7 年前

    我最后做的是创建一个委托类型来封装查询,这需要 MyDatabaseContext List<T> 哪里 T

    因此,现在创建查询的函数可以简单地返回一个函数,无论何时需要运行查询,都可以将查询作为函数调用,并将上下文实例作为参数传递给它。该函数从给定上下文返回适用于其所表示的查询的实体列表。