静态数据库上下文混乱

99823

在这里找到关于stackoverflow的帖子之后,对我的DbContext进行了建模

这是当前设置...

public static class DbContext
{
    public static MyDbContext Db
    {
        get
        {
            if (!HttpContext.Current.Items.Contains("_db"))
            {
                HttpContext.Current.Items.Add("_db", new MyDbContext());
            }
            return HttpContext.Current.Items["_db"] as MyDbContext;
        }
    }
}

上下文在end_request上的global.asax中进行处理,如下所示:

    void Application_EndRequest(object sender, EventArgs e)
    {
        var db = (MyDbContext)HttpContext.Current.Items["_db"];
        if (db != null)
            db.Dispose();
    }

这样,在整个系统中,我都可以像访问Db一样 DbContext.Db.xxxx

到目前为止,一切都对我来说本地运行良好,但是,我还没有在生产环境中对多个用户进行测试。

我的顾虑...

我阅读了有关stackoverflow的文章,现在我担心多个用户访问静态上下文可能会出现数据问题。这应该让我感到关注还是可以让我进行设置?

沃尔特

设置没问题...

我的解决方案不使用静态DbContext。DbContext(或所需的任何内容)存储在HttpContext.Current.Items集合中(这是当前特定的HTTP请求),并且该属性等效于方法调用,该方法调用将从该集合中检索上下文并在需要时实例化它。选择该集合是出于其安全性,并且事实上很容易在任何地方(即从Application_EndRequest事件中)对其进行引用,因此我们可以在完成后将其处置。

您所链接的帖子有很大的不同,因为它描述了您使用的情况static field该字段显然将在所有用户之间共享,这将是一个大问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Light在MVC中注入数据库上下文

来自分类Dev

Glass上下文数据库null

来自分类Dev

Linq Sql数据库上下文丢失方法

来自分类Dev

使用不同的上下文访问数据库

来自分类Dev

数据库上下文中缺少GetTable <TEntity>()

来自分类Dev

Glass上下文数据库null

来自分类Dev

为什么我的数据库上下文被处置

来自分类Dev

SignalR 和数据库上下文处理

来自分类Dev

如何在asp.net core 2中的静态方法/类中访问数据库上下文

来自分类Dev

使用 SQLite 数据库将适配器 onBindViewHolder itemView 上下文转换为类上下文

来自分类Dev

具有通用数据库上下文的存储库模式

来自分类Dev

CastleWindsor,通用存储库和两个数据库上下文

来自分类Dev

使用存储库模式时的多个数据库上下文

来自分类Dev

哪个是将存储库模式用于数据库上下文的最佳代码?

来自分类Dev

执行上下文混乱

来自分类Dev

执行上下文混乱

来自分类Dev

从Entities数据库上下文检索数据时发生ThreadAbortException

来自分类Dev

每次Entity Framework数据库迁移后如何访问上下文

来自分类Dev

首先将现有视图添加到代码中数据库上下文?

来自分类Dev

有使用数据库上下文类的正确方法吗?

来自分类Dev

使用Flask-Restful从应用程序上下文获取数据库连接

来自分类Dev

在Entity Framework中使用DbSet而不是IDbSet模拟数据库上下文类

来自分类Dev

在应用程序上下文之外创建数据库

来自分类Dev

MVC使用上下文在数据库中查找记录

来自分类Dev

自创建数据库以来,支持“ DataContext”上下文的模型已更改

来自分类Dev

TransactionScope下的两个数据库上下文失败

来自分类Dev

使用上下文管理器连接到sqlite3数据库

来自分类Dev

删除多个项目具有数据库的上下文操作模式

来自分类Dev

实体框架多上下文和Microsoft Azure。如何更新数据库?

Related 相关文章

  1. 1

    Light在MVC中注入数据库上下文

  2. 2

    Glass上下文数据库null

  3. 3

    Linq Sql数据库上下文丢失方法

  4. 4

    使用不同的上下文访问数据库

  5. 5

    数据库上下文中缺少GetTable <TEntity>()

  6. 6

    Glass上下文数据库null

  7. 7

    为什么我的数据库上下文被处置

  8. 8

    SignalR 和数据库上下文处理

  9. 9

    如何在asp.net core 2中的静态方法/类中访问数据库上下文

  10. 10

    使用 SQLite 数据库将适配器 onBindViewHolder itemView 上下文转换为类上下文

  11. 11

    具有通用数据库上下文的存储库模式

  12. 12

    CastleWindsor,通用存储库和两个数据库上下文

  13. 13

    使用存储库模式时的多个数据库上下文

  14. 14

    哪个是将存储库模式用于数据库上下文的最佳代码?

  15. 15

    执行上下文混乱

  16. 16

    执行上下文混乱

  17. 17

    从Entities数据库上下文检索数据时发生ThreadAbortException

  18. 18

    每次Entity Framework数据库迁移后如何访问上下文

  19. 19

    首先将现有视图添加到代码中数据库上下文?

  20. 20

    有使用数据库上下文类的正确方法吗?

  21. 21

    使用Flask-Restful从应用程序上下文获取数据库连接

  22. 22

    在Entity Framework中使用DbSet而不是IDbSet模拟数据库上下文类

  23. 23

    在应用程序上下文之外创建数据库

  24. 24

    MVC使用上下文在数据库中查找记录

  25. 25

    自创建数据库以来,支持“ DataContext”上下文的模型已更改

  26. 26

    TransactionScope下的两个数据库上下文失败

  27. 27

    使用上下文管理器连接到sqlite3数据库

  28. 28

    删除多个项目具有数据库的上下文操作模式

  29. 29

    实体框架多上下文和Microsoft Azure。如何更新数据库?

热门标签

归档