NHibernate.ISession 相关的问题

acqy 2009-07-15 04:37:20
1、SessionFactory.OpenSession方法是否每次都会创建一个新的ISession实例并返回?

2、下面两种做法,哪种更好?
a) 每次在作数据库操作的时候,就使用SessionFactory.OpenSession打开一个session,而在操作完成后,使用session.Close关闭Session
b) 在应用程序启动时就使用SessionFactory.OpenSession打开一个session,而在整个程序中就共用这个session

3、假设需要使用Singleton模式来实现一个SessionManager用以获取Session的单件,应该如何设计这个singleton以使其具有较好的线程安全性?
...全文
113 点赞 收藏 13
写回复
13 条回复
first_23today 2011年10月17日
...
回复 点赞
first_23today 2011年10月17日
you
回复 点赞
huangsz0 2009年12月01日
我也想了解下,如果Session不Close那么会不会有什影响没?
回复 点赞
caotoulei 2009年07月28日
帮顶。
回复 点赞
acqy 2009年07月16日
再顶
回复 点赞
kangbo818 2009年07月16日
帮顶
回复 点赞
acqy 2009年07月16日
...
回复 点赞
gongsun 2009年07月16日
...
回复 点赞
li365941471 2009年07月16日
mark!
回复 点赞
acqy 2009年07月16日
我自己先顶一下。
回复 点赞
hecker728 2009年07月16日
1.不一定
2.B好些
3.不清楚
回复 点赞
acqy 2009年07月16日
[Quote=引用 1 楼 shalen520 的回复:]
2.如果没有多线程,可以考虑a,否则b
[/Quote]

您好!想进一步请教一下,如果有多线程的情况,而使用的是方法a,可能会造成哪些问题?是否会因为两个线程在其各自的“地盘”中使用单独的session而造成数据不一致性?这种同步难道不是由数据库协调的么?
回复 点赞
shalen520 2009年07月15日
1.不一定

2.如果没有多线程,可以考虑a,否则b

3.如果多线程访问,可以考虑用锁,否则各线程用自己的Session
回复 点赞
发动态
发帖子
C#
创建于2007-09-28

8.4w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告