编程语言
首页 > 编程语言> > c# – 如何使用Spring.Net设置NHibernate以使用无状态会话?

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