gpt4 book ai didi

code-first - 从 IQueryable 访问 DbContext

转载 作者:行者123 更新时间:2023-12-04 14:50:25 25 4
gpt4 key购买 nike

我正在尝试实现可能需要利用 Redis 的缓存模式。这种模式的问题是我需要禁用 Configuration.ProxyCreationEnabled 然后重新启用它以避免跨网络场的任何问题。

我想做的是从 IQueryable 访问 DbContext ,这样我就可以一次而不是到处执行此操作。最简单的方法是将正在使用的 DbContext 传递到我的缓存扩展中,但是我遇到了这篇文章:

Access DataContext behind IQueryable

有没有一种方法可以使用 EF 4.1 Code Fist(DbSet 等)以与上述链接类似的方式访问 DbContext?

我试图自己找到这个,但很难使用反射从 IQueryable 中引用的 DbSet 中找到基类。

最佳答案

Access DataContext behind IQueryable 中提到的解决方案是一个黑客,不应该使用。它依赖于实现 IQueryable 的类中的私有(private)成员变量的名称。这意味着实现类可能会在 EF/.NET Framework 的 future 版本中发生更改并破坏您的代码。由于无法通过 IQueryable 接口(interface)访问 DbContext,因此应将其传递到缓存扩展中以避免对 IQueryable 实现做出假设。这样做还将更清楚地在缓存接口(interface)中建立对 DbContext 的依赖关系,而不是将其埋在实现中。

关于code-first - 从 IQueryable 访问 DbContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7310101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com