15----EFContext对象从数据槽获取---单例模式

 1 class Program
 2     {
 3         static void Main(string[] args)
 4         {
 5             //DbContext context = ContextFactory.GetContext();
 6             //OrderInfo oi = new OrderInfo()
 7             //{
 8             //     OrderTitle="三星手机"
 9             //};
10             //oi.CustomerInfo = new CustomerInfo()
11             //{
12             //     CustomerName="淳于琼",
13             //     CustomerDate=DateTime.Now
14             //};
15             //context.Set<OrderInfo>().Add(oi);
16             //context.SaveChanges();
17             //Console.WriteLine("OK");
18             //Console.ReadKey();
19
20             //测试,
21             AddCustomerInfo();
22             AddOrderInfo();
23             Save();
24             Console.WriteLine("OK");
25             Console.ReadKey();
26
27         }
28         /// <summary>
29         ///
30         /// </summary>
31         private static void Save()
32         {
33             DbContext context = ContextFactory.GetContext();
34             context.SaveChanges();
35         }
36
37         private static void AddCustomerInfo()
38         {
39             DbContext context = ContextFactory.GetContext();
40             context.Set<CustomerInfo>().Add(new CustomerInfo()
41             {
42                 CustomerName = "大张伟",
43                 CustomerDate = DateTime.Now
44             });
45
46         }
47
48         private static void AddOrderInfo()
49         {
50             DbContext context = ContextFactory.GetContext();
51             context.Set<OrderInfo>().Add(new OrderInfo()
52             {
53                  OrderTitle="七星宝刀",
54                  CustomerId=7
55             });
56         }
57     }
58     /// <summary>
59     /// 获取上下文对象的类
60     /// </summary>
61     public static class ContextFactory
62     {
63         public static DbContext GetContext()
64         {
65             //从数据槽中获取上下文对象,保证对象的单一
66             DbContext context = CallContext.GetData("DbContext") as DbContext;
67             if (context == null)
68             {
69                 //当数据槽中不存在的时候。创建一个上下文对象并把它放在数据槽中
70                 context = new EFTestEntities();
71                 CallContext.SetData("DbContext", context);
72             }
73             return context;
74         }
75     }
时间: 2024-12-18 17:25:45

15----EFContext对象从数据槽获取---单例模式的相关文章

C# 如何保证对象线程内唯一:数据槽(CallContext)

如果说,一个对象保证全局唯一,大家肯定会想到一个经典的设计模式:单例模式,如果要使用的对象必须是线程内唯一的呢? 数据槽:CallContext,ok看下msdn对callcontent的解释. CallContext 是类似于方法调用的线程本地存储区的专用集合对象,并提供对每个逻辑执行线程都唯一的数据槽.数据槽不在其他逻辑线程上的调用上下文之间共享.当 CallContext 沿执行代码路径往返传播并且由该路径中的各个对象检查时,可将对象添加到其中. 也就是说,当前线程对对象进行储存到线程本地

ODAC (V9.5.15) 学习笔记(二十)大数据量获取处理

ODAC获取数据的效率比较高,在Web程序中希望能够更快获取第一页的数据时,可以有几种方式: 1.在数据库中进行分页处理: 2.获取所有数据,只是快速返回第一页数据. 第一种方案对应用服务器资源消耗最小,对数据库消耗略大,在客户需要对全数据进行灵活过滤.查找.统计时就有些不够用了,另外对耗时较大的SQL查询就不如第二种方案速度快,对数据库压力也要大些,并且需要编写程序来完成.在Delphi下我考虑使用第二种方案,尤其是在使用uniGUI+ODAC配合使用时.第二种方案对应于服务器内存压力略大,并

C# 城市路网地图生成与运动模拟(一)-数据的获取

雪影工作室版权所有,转载请注明[http://blog.csdn.net/lina791211] 1.前言 这段时间一直在研究城市路网,某一天受不可告人的启发,决定把城市路网的地图做出来,然后模拟移动对象在路网上的运动,故本人开始了模拟地图生成的不归路. 任务要求: (1)通过一组城市路网街道的数据(图的格式存储,demo数据下面给),把城市路网数据转换成坐标数据(其实这一步,我拿到的数据已经转换完成了,也就是说我拿到了的是平面坐标数据,而不是球面经纬度数据): (2)根据平面坐标数据,使用Ja

使用Socket通信实现Silverlight客户端实时数据的获取(模拟GPS数据,地图实时位置)

原文:使用Socket通信实现Silverlight客户端实时数据的获取(模拟GPS数据,地图实时位置) 在上一篇中说到了Silverlight下的Socket通信,在最后的时候说到本篇将会结合地图.下面就来看看本文实现的功能: Silverlight 与服务器利用Socket通讯,实时从服务器获取数据(本文中的数据是地理坐标),由于没有GPS,所以本文在服务器写了一个构造新坐标的函数(本文是一个三角函数),然后利用Timer组件,实时调用,得到新的坐标,并将新的坐标发送给客户端,客户端接收到发

Android学习之Json数据的获取与解析

Android获取json数据的原理,我的理解是:首先通过http协议获取json数据的字符串格式数据,然后再把字符串格式转变成Json对象的数据 首先我先将某个网址path的数据获取到: 1 /** 2 * HttpUtils.java [V 1.0.0] 3 * classes :com.oysd.json.HttpUtils 4 * ouyangshengduo create at 2015-6-24 5 */ 6 package com.oysd.json; 7 8 import jav

多线程访问共享对象和数据的方式

在多线程访问共享对象和数据时候大致可以分为两大类. 1:如果每个线程执行的代码相同,可以使用同一个runnable对象,这个runnable对象中有那个共享对象.如:买票系统. 1 public class MulteThreadlShareData { 2 public static void main(String[] args) { 3 ShareData shareData = new ShareData(); 4 new Thread(shareData).start(); 5 new

处理大数据对象clob数据和blob数据

直接上下代码: 1 package com.learn.jdbc.chap06; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.InputStream; 6 import java.sql.Connection; 7 import java.sql.PreparedStatement; 8 9 import com.learn.jdbc.model.Album; 10 import com.

17开年第一篇Activity之间传递List&lt;T&gt; 以及T对象类型数据的方法

现在转眼都十三了,大家都工作了,自己确还没有在家里闲得慌于是就做个App,谁知道就遇到了Activity间传递实例以及List<T>数据的问题.网上同类型的文章很多,我写只是为了做个笔记预防忘记(其他的我觉得进入不了状态,还是自己的思维好理解一些). 废话不多说下面正题. 要实现上面的需求有几种方式: 1.定义全局静态变量,由一个静态变量集合类管理,至于安全方面,可以把控访问方式,比如验证访问,不过相对来说感觉比较麻烦. 2. Application中设置一个属性,公开读取. 3.使用Seri

依附大系统 【数据实时获取】解决方案

最近公司作为众多外部厂商之一,需要依托一个大型平台系统( 这里简称为Big-S) 给特定用户提供一些服务. 作为外部厂商开发的 Web 应用(这里简称 Small-S),需要提取 Big-S 中的基础数据,包括用户.组织结构.代码表......部分字段到本地数据表中. 融合 Small-S 自己特点,作为搭建 Small-S Web 项目的先决条件. Small-S 需要做到和 Big-S 的重点基础数据实时一致, 重点关注 Big-S 数据交互方面的以下特性. 1. Big-S 提供给外部厂商