EF中DataContext创建的两段代码收藏
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Web;
5 using System.Collections;
6 using System.Data.Linq;
7
8 /// <summary>
9 /// 实现自动抛弃当前数据库上下文的模块。
10 /// </summary>
11 public sealed class DataContextAutoDisposeModule : IHttpModule
12 {
13 #region IHttpModule 成员
14 public void Init(HttpApplication context)
15 {
16 context.PostRequestHandlerExecute += new EventHandler(Enter);
17 }
18
19 public void Dispose()
20 {
21 }
22 #endregion
23
24 private void Enter(object sender, EventArgs e)
25 {
26 IDictionary httpContextItems = HttpContext.Current.Items;
27 List<object> keys = new List<object>(httpContextItems.Count);
28
29 foreach (DictionaryEntry item in httpContextItems)
30 {
31 DataContext dataContext = item.Value as DataContext;
32 if (dataContext != null)
33 {
34 dataContext.Dispose();
35 keys.Add(item.Key);
36 }
37 }
38
39 foreach (object key in keys)
40 {
41 httpContextItems.Remove(key);
42 }
43 }
44 }
using System.Web;
public static class DataContextFactory
{
public static TDataContext GetDataContext<TDataContext>()
where TDataContext : DataContext, new()
{
if (HttpContext.Current != null)
{
string key = typeof(TDataContext).FullName;
TDataContext dataContext = HttpContext.Current.Items[key] as TDataContext;
if (dataContext == null)
{
dataContext = new TDataContext();
HttpContext.Current.Items[key] = dataContext;
}
return dataContext;
}
return new TDataContext();
}
}
转载于:https://www.cnblogs.com/brusehht/archive/2011/09/09/2172494.html
EF中DataContext创建的两段代码收藏相关推荐
- EF中Add()和Attach()两种添加数据方法的区别
最近在开发一个项目,在实现某个模块数据的插入操作时(底层数据库的交互采用的是EF),发现无论如何数据都不能插入成功,把数据拷贝出来放到数据库中执行Sql语句时却能正确插入,下面给出代码片段 publi ...
- EF中数据优先,模型优先和代码优先
看了很多文章也不是很明白,说的都太书面化了,大家看看这图一下子就明白了,哈哈 其实看图很简单,database first和model first都是通过 data model创建的edmx文件,只不 ...
- 【unity】动画状态机中Transition的settings两段动画如何设置?
场景 这里其实就很类似一些视频剪辑的软件类似Pr或者vegas了 因为Transition中文就是过度的意思 两段动画A,B在过度的时候,如果播放完A再播放B,那就会显得很生硬!怎么办呢? 调整一下动 ...
- python中生成器的两段代码
生产者-消费者经典单线程问题 import time def consumer(name): print("%s 准备吃包子啦!" %name) while Tru ...
- 系统快捷方式java_java中这么创建界面快捷方式图标 代码
@echo off color 0a :head cls set /p url=请输入文件的位置: set /p name=请输入快捷方式的名称: echo ThePath = "%url% ...
- java通过代码显示特定窗体,如何把这两段代码在一个窗体显示,类似于windows自带的扫雷一样...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 第一段是菜单栏: package saolei; import java.awt.event.ActionEvent; import java.awt.e ...
- 如何用pycharm对比两段代码(或两个文件的代码)
右键文件,点击Compare With 选择要对比的文件,点击ok 然后就可以愉快地玩耍啦♪(∇*) 参考文章:pycharm的强大之处之两个文件代码的比对
- java 事件分发机制_用两段代码带你看懂事件分发机制
先来看一段精简版的源码 View.java public class View { private View.OnClickListener mOnClickListener; private OnL ...
- 什么是epoll的水平触发与边缘触发?两段代码彻底理解
Edge trigger and level trigger of epoll 水平触发 对于读操作:只要缓冲内容不为空,LT模式返回读就绪. 对于写操作:只要缓冲区还不满,LT模式会返回写就绪. # ...
- 如何测试pytorch-gpu版本和tensorflow-gpu版本是否安装成功,测试代码如下,在想要测试的环境中将两段代码分别输入测试即可
#测试pytorch-gpu是否能用 import torch flag = torch.cuda.is_available() print(flag) ngpu= 1 # Decide which ...
最新文章
- 敏捷宣言遵循的十二条原则
- 《BI那点儿事》三国人物智力分布状态分析
- boost::sort模块实现跨并行线程的整数排序速度基准的测试程序
- python用什么处理文件_利用Python如何快速处理文件
- 针对WEB前端新人的前端知识体系
- 51nod 1046 A^B Mod C
- 网站去色的通用方法(简单)
- 现有 Delphi 项目迁移到 Tiburon 中的注意事项
- mysql 帮助文档使用
- Mac OSX上折腾JDK
- 大数据比海量数据多了什么
- 蛮牛教育Unity Shader从入门到精通:第十节课Shader问题
- 嵌入式的c语言,嵌入式c语言
- 移动宽带覆盖小区查询 (广东范围)
- 蒟蒻的数据结构乱谈(未完)
- 关于左对齐和左对齐的一些简单理解和杨辉3角的算法思想
- 华硕天选2键盘背光灯切换颜色
- 技术团队建设总结(一)
- Broadcast 和 BroadcastReceiver
- 强制root工具kingoroot
热门文章
- flask的各种装饰器
- javasript深度拷贝
- matconvnet在MATLAB2013配置过程中遇到的问题
- Emulator Error: Could not load OpenGLES emulation library: Could not load DLL!
- hdu 1394 Minimum Inversion Number(树状数组)
- Windows 下安装Python包(Numpy)的错误:Unable to find vcvarsall.bat
- HackFifteen 移除背景以提升Activity启动速度
- 《算法图解》读书笔记(一)
- Windows server 2016 / Windows 10关于域管理员帐号权限不足的问题
- ClassLoader 学习笔记