|
|
|
 |
 |
Исходник |
 |
|
 |
 |
|
Автор:
|
|
|
Название:
|
Сессия работы с данными для web |
|
Дата:
|
11 August 2005 |
|
Описание: |
См http://aspnetmania.com/Blogs/Post/278.html |
| |
Разместить ссылку на этот исходник в форуме вы можете вставив в текст сообщения
следующую строку:
[CODEPOST ID=154]Сессия работы с данными для web [/CODEPOST] |
| Оценка: |
Проголосовало 2 посетителей, средняя оценка 3.00 |
| Оценить: |
|
1 /// <summary>
2 /// Сесия работы с данными
3 /// </summary>
4 public class DataSession
5 {
6 #region Static
7
8 private static Hashtable sessions = new Hashtable();
9
10 /// <summary>
11 /// Получить ключ текущей датаСессии
12 /// </summary>
13 private static string sessionKey
14 {
15 get
16 {
17 // Используем простой идентификатор сессии, но можно реализовать и свой
18 try{return HttpContext.Current.Session.SessionID;}
19 catch{return "static";}
20 }
21 }
22
23 /// <summary>
24 /// Текущая датаСессия
25 /// </summary>
26 public static DataSession Current
27 {
28 get
29 {
30 string key = sessionKey;
31 if (sessions.Contains(key)) return (DataSession) sessions[key];
32 DataSession dataSession = new DataSession(key);
33 sessions.Add(key, dataSession);
34 return dataSession;
35 }
36 }
37
38 public static void CloseCurrent()
39 {
40 DataSession.Current.close();
41 sessions.Remove(sessionKey);
42 }
43
44 #endregion
45
46 private UnitOfWork uow;
47 private string key;
48 private ConnectionPool connectionPool;
49
50
51 /// <summary>
52 /// Ключ текущей датаСессии
53 /// </summary>
54 public string Key
55 {
56 get { return key; }
57 set { key = value; }
58 }
59
60 /// <summary>
61 /// Экземпляр единицыаботы текущей датаСессии
62 /// </summary>
63 public UnitOfWork UOW
64 {
65 get { return uow; }
66 set { uow = value; }
67 }
68
69 public ConnectionPool ConnectionPool
70 {
71 get { return connectionPool; }
72 }
73
74 /// <summary>
75 /// Конструктор новой датаСессии
76 /// </summary>
77 /// <param name="key">Ключ новой датасессии</param>
78 public DataSession(string key)
79 {
80 this.key = key;
81 this.uow = new UnitOfWork();
82 this.connectionPool=new ConnectionPool();
83 }
84
85 /// <summary>
86 /// Откатить бизнесТранзакцию
87 /// </summary>
88 public void Rolback()
89 {
90 UOW.Rolback();
91 }
92
93 /// <summary>
94 /// Принять изменения сделанные в текущей датаСессии
95 /// </summary>
96 public void Commit()
97 {
98 UOW.Commit();
99 }
100
101 /// <summary>
102 /// закрыть текущую датасессию, приняв изменения произощедшие в ней
103 /// </summary>
104 private void close()
105 {
106 ConnectionPool.Dispose();
107 UOW.Commit();
108 }
109 } |
| Вернуться к списку исходников в категории ADO.NET |
|
|
 |
 |
 |
 |
|
|