EF 用CallContext上下文管理

public class ObjectContextFactory
    {
        private static CIK_NewsEntities context;
        public static DbContext GetContext()
        {
            //从CallContext数据槽中获取EF上下文
            context = CallContext.GetData(typeof(ObjectContextFactory).FullName) as CIK_NewsEntities;
            if (context==null)
            {
                //如果CallContext数据槽中没有EF上下文,则创建EF上下文,并保存到CallContext数据槽中
                context = new CIK_NewsEntities();
                CallContext.SetData(typeof(ObjectContextFactory).FullName, context);
            }
            return context;
        }

    }
时间: 2024-12-15 06:50:56

EF 用CallContext上下文管理的相关文章

Python:contextlib模块——上下文管理器工具

上篇博文简单的讲了下with语句的用法以及上下文管理器对象的概念,想必对上下文管理器对象有一定的了解.一个对象如果实现了上下文管理协议,也就是在类中定义了__enter__()和__exit__()方法两个方法的对象,都可以称为上下文管理器对象. 但是,Python中有个contextlib模块,是个比with优美的东西,提供上下文机制的,它是通过Generator装饰器实现的,不再是采用__enter__和__exit__. contextlib模块对外有三个接口,分别是contextlib.

谈一谈Python的上下文管理器

经常在Python代码中看到with语句,仔细分析下,会发现这个with语句功能好强,可以自动关闭资源.这个在Python中叫上下文管理器Context Manager.那我们要怎么用它,什么时候用它呢.这里我们就来聊一聊. 上下文管理器的作用 很多情况,当我们使用完一个资源后,我们需要手动的关闭掉它,比如操作文件,建立数据库连接等.但是,在使用资源的过程中,如果遇到异常,很可能错误被直接抛出,导致来不及关闭资源.所以在大部分程序语言里,我们使用"try-finally"语句来确保资源

net Core 通过 Ef Core 访问、管理Mysql

net Core 通过 Ef Core 访问.管理Mysql 本文地址:http://www.cnblogs.com/likeli/p/5910524.html 环境 dotnet Core版本:1.0.0-preview2-003131 本文分为Window环境和Mac Os X环境. 相关资源下载 Visual Studio Code:https://code.visualstudio.com DotNet Core:https://dotnet.github.io/ MySql.Data.

自定义上下文管理器

只需要在自定义类里实现__enter__和__exit__两个方法,即可以让类支持上下文管理, __enter__ 执行前调用一些初始化工作 __exit__ 执行完毕后调用一些释放工作,像关闭句柄之类 class MyOpen(object):     def __init__(self, pfile, mode='r', ignore_exception=False):         self.pfile, self.mode = pfile, mode         self.fd =

Python 上下文管理器和else块

最终,上下文管理器可能几乎与子程序(subroutine)本身一样重要.目前,我们只了解了上下文管理器的皮毛--Basic 语言有with 语句,而且很多语言都有.但是,在各种语言中 with 语句的作用不同,而且做的都是简单的事,虽然可以避免不断使用点号查找属性,但是不会做事前准备和事后清理.不要觉得名字一样,就意味着作用也一样.with 语句是非常了不起的特性.  --Raymond Hettinger 雄辩的 Python 布道者 先做这个,再做那个:if语句之外的else块 这个语言特性

如何正确理解关键字"with"与上下文管理器(转载)

如果你有阅读源码的习惯,可能会看到一些优秀的代码经常出现带有 “with” 关键字的语句,它通常用在什么场景呢?今天就来说说 with 和 上下文管理器. 对于系统资源如文件.数据库连接.socket 而言,应用程序打开这些资源并执行完业务逻辑之后,必须做的一件事就是要关闭(断开)该资源. 比如 Python 程序打开一个文件,往文件中写内容,写完之后,就要关闭该文件,否则会出现什么情况呢?极端情况下会出现 “Too many open files” 的错误,因为系统允许你打开的最大文件数量是有

Python概念-上下文管理协议中的__enter__和__exit__

所谓上下文管理协议,就是咱们打开文件时常用的一种方法:with __enter__(self):当with开始运行的时候触发此方法的运行 __exit__(self, exc_type, exc_val, exc_tb):当with运行结束之后触发此方法的运行 exc_type如果抛出异常,这里获取异常的类型 exc_val如果抛出异常,这里显示异常内容 exc_tb如果抛出异常,这里显示所在位置 代码示例:(以自己定义的Open类型做示例) 1 # 编辑者:闫龙 2 class Open: 3

fabric上下文管理器(context mangers)

1.如何调用该方法:from fabric import context_managers ps:上下文管理需要用with关键字启用:    如:        with context_managers.cd('/tmp'):          run(...)    这样才能保证是在该目录下操作. 2.方法:(1)with context_managers.cd(一个目录的路径):    指定进入一个目录,然后在该目录下执行操作.    例:    def cd(path):      wi

Python基础- 类和对象(使用、继承、派生、组合、接口、多态、封装、property、staticmethod、classmethod、反射、slots、上下文管理协议、元类)

标签: python对象 2017-07-01 16:28 79人阅读 评论(0) 收藏 举报  分类: python(11)  版权声明:本文为广大朋友交流学习,如有纰漏望不吝赐教,若存在版权侵犯请及时与我联系 目录(?)[+] 一.初识类和对象 在python3中类型就是类 先定义类在产生相对应的对象,也就是现有了概念再有了实体 class Garen: camp = 'Demacia' def attack(self): print('attack') 1.如何使用类 在python3: