3

我正在尝试使用 NHibernate 将大量数据插入到数据库中,这样做的速度非常慢。我已经阅读了它,到处都建议让 NH 设置行的标识,以便它可以批处理并且不需要在插入后调用 SCOPE_IDENTITY,但是,它是一个带有旧数据库的棕地应用程序,所以我可以t 让 NHibernate 控制行的标识。

有什么方法可以告诉 NH 不选择范围标识,而只将行插入数据库?我现在不需要它知道他们的身份,所以插入后行是否知道他们的身份没有什么区别,但我猜我不能告诉 Nhibernate 不要在这个案例?

如果有任何后果,请使用 Fluent NH。

提前致谢。

4

1 回答 1

3

NH 需要身份来管理缓存中的实体以识别它们。所以我认为没有办法解决。

您的性能问题不一定是由身份引起的。可能是您刷新会话太多次。尝试关闭自动刷新以验证它或使用 StatelessSession。

ORM 在大规模操作中不是很好。您应该考虑使用更底层的东西(如 SQL)。

于 2012-07-06T11:40:01.477 回答