gpt4 book ai didi

c# - 如何使用 Spring.Net 设置 NHibernate 以使用无状态 session ?

转载 作者:太空狗 更新时间:2023-10-30 01:11:33 26 4
gpt4 key购买 nike

我目前正在开发一个从文件中读取一堆数据的应用程序。要插入数据库的对象批处理的通常大小约为 40.000 个对象。到目前为止,我们已经使用 Spring.Net 和 NHibernate 进行开发,我希望尽可能保持一致,并为批量插入使用相同的技术。我有使用 NHibernate 的经验,我知道使用无状态 session 是可能的。

有没有办法使用 Springs.Net 事务和 session 管理,但使用 NHibernate 无状态 session ?对于如此大量的对象,使用有状态 session 不是一种选择,我真的很想使用 NHibernate 而不是 Spring.Net ADO

最佳答案

您可以构建自己的 HibernateTransactionManager 来创建这两种类型的 session 。这几乎没有开销,因为 session 的创建成本很低。

从 Spring.NET 源代码树中该类的副本开始。当它为常规 ISession 这样做时,让它打开和关闭 IStatelessSession。将您的 IStatelessSession 放入 Spring.Threading.HybridContextStorage 以便于访问。

然后在需要 IStatelessSession 的类上创建方法或扩展方法 GetStatelessSession。

或者,如果您使用的是 SQL Server,则使用 SqlBulkCopy 可能会更好。

关于c# - 如何使用 Spring.Net 设置 NHibernate 以使用无状态 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2287884/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com