我需要一些关于C#WinForms应用程序的NHibernate会话管理的建议。
我目前正在移植一个使用NHibernate的应用程序。我也正在使用UnitOfWork模式,如下面的链接所述;
http://nhforge.org/wikis/patternsandpractices/nhibernate-and-the-unit-of-work-pattern.aspx
我的问题与Sessions有关。
每个线程一次只能运行一个会话吗?
我有一个场景,其中可以为应用程序显示的表单打开一个Session(UnitOfWork),但是用户打开另一个表单(即Tools - Options),我希望它有自己的UnitOfWork。显然,在这种情况下,为“工具 - 选项”表单打开另一个会话更有意义,而不是使用当前打开的会话作为基础表单。
我们可以在一个帖子上有一个会话词典吗?
对会话管理的任何建议表示赞赏。
答案 0 :(得分:4)
http://msdn.microsoft.com/en-us/magazine/ee819139.aspx
它使用WPF作为UI技术,但他所说的一切(桌面应用程序中的NHibernate)与WinForms同样相关。
答案 1 :(得分:3)
1 - 您可以根据用例需要设置多个会话。
2 - 没关系,基于1。
3 - 您可以将会话变量放在字典或任何其他集合中。
除非你真的知道自己在做什么,为什么这样做,否则你不应该做什么: