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
如何使用 MVC3 ASP.NET 4.5 和 EF6 基于实体属性注释对 TextBoxFor 进行舍入