c# – 如何使用Spring.Net设置NHibernate以使用无状态会话?
作者:互联网
我目前正在开发一个从文件中读取大量数据的应用程序.要插入db中的一批对象的通常大小约为40.000个对象.到目前为止,我们已经使用Spring.Net和NHibernate进行开发,我希望尽可能保持一致,并使用相同的技术进行批量插入.我有NHibernate的经验,我知道使用无状态会话是可能的.
有没有办法使用Springs.Net事务和会话管理但使用NHibernate无状态会话?使用有状态会话不是一个具有如此大量对象的选项,我真的想要使用NHibernate而不是Spring.Net ADO
解决方法:
您可以构建自己的HibernateTransactionManager,它可以创建两种类型的会话.这几乎没有开销,因为Sessions的创建成本很低.
从Spring.NET源代码树中获取该类的副本.当它为常规ISession执行此操作时,它是否打开并关闭IStatelessSession.将您的IStatelessSession放入Spring.Threading.HybridContextStorage以便于访问.
然后在需要IStatelessSession的类上创建方法或扩展方法GetStatelessSession.
或者,如果您使用的是SQL Server,则使用SqlBulkCopy可能会更好.
标签:c,nhibernate,spring-net 来源: https://codeday.me/bug/20190621/1259096.html