Vic*_*ues 6 c# nhibernate multithreading
我正在构建一个像这样工作的多线程系统:
虽然有实体:
从nHibernate获取实体(使用当前会话)
启动一个可与此实体一起使用的新线程*
当我启动这个新线程时,需要有一个新的Session,因为nHibernate不是线程安全的.我创建它,但之前检索的实体不适用于此会话.
今天我正在解决这种情况,从nHibernate中检索一个传递id的新实体.但这很昂贵,我正在努力节省一些时间来实现我的SLA.
有没有办法将此对象链接到此新会话而无需进行新的数据库调用?另一个会话将不会关闭,它们全部打开,直到应用程序结束.
如果您正在使用分离的对象,则必须将它们重新附加到会话。如果您拥有正在使用的对象的正确 Hibernate id,调用 get,然后将您的副本与刚刚放入会话的 Hibernate 合并,您就可以做到这一点。不过,请确保使用合并,因为 saveOrUpdate() 不会删除分离对象中缺少的任何子对象,而只是添加新的子对象并将更改保存到现有的子对象。
| 归档时间: |
|
| 查看次数: |
2220 次 |
| 最近记录: |