使用NHibernate将行插入数据库表,而不在插入行之后调用scope_identity

时间:2012-07-06 11:35:06

标签: c# nhibernate fluent-nhibernate

我正在尝试将大量数据与NHibernate一起插入到数据库中,这样做非常慢。我已经读过它并且到处都有建议让NH设置行的标识,这样它就可以批处理,而不需要在插入后调用SCOPE_IDENTITY,但是,它是一个带有遗留数据库的棕色应用程序,所以我可以'让NHibernate控制行的标识。

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

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

提前致谢。

1 个答案:

答案 0 :(得分:3)

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

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

ORM在大规模操作中不是很好。你应该考虑使用更低级别的东西(比如SQL)。