ASP.net如何保证EF操作类线程内唯一

Posted 人生不断学习

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP.net如何保证EF操作类线程内唯一相关的知识,希望对你有一定的参考价值。

说到线程内唯一,肯定会想到单例模式,但是如果多用户访问网站就会出现问题。ASP.net中有两种方法可以保证EF操作类线程内唯一(目前只会这两种,以后有好的方法再添加):

1、httpcontext(实现原理也是通过数据槽callcontext)

将EF操作类通过键值对方法保存在HttpContext.Current.Items["key"],封装成方法直接调用

2、callcontext

public static DbContext CreateDbContext() {

DbContext dbContext = (DbContext)CallContext.GetData("dbContext");

if (dbContext == null)

{ dbContext = new OAEntities();

CallContext.SetData("dbContext", dbContext);

}

return dbContext;

}

以上是关于ASP.net如何保证EF操作类线程内唯一的主要内容,如果未能解决你的问题,请参考以下文章

.net、asp.net、MVC、Ado.Net、EF、ORM、NHibemate之间的关系?

C# EF6 使用 Unity 对一个上下文进行多次异步调用 - Asp.Net Web Api

ASP.NET-EF基础知识

如何使用 MVC3 ASP.NET 4.5 和 EF6 基于实体属性注释对 TextBoxFor 进行舍入

ASP.Net Core 如何在 EF Core 和 Identity 中获取用户角色

ASP.NET EF(LINQ/Lambda查询)