2013-08-31 73 views
0

我有一个nHibernate项目,其中所有的表都已映射。我想消除大部分映射 - 并使用通过SQL传递消除的表。对于其余的映射,我想继续使用nHibernate。 完成此操作的最佳方法是什么?如何撤消nhibernate映射

+0

刚刚删除映射声明,例如XML文件? – oddparity

+1

“消除映射”听起来像是一个症状的错误结论。除此之外,删除映射文件或将其从构建中排除将很容易。 – Firo

+2

考虑@Firo写道:请注意,您也可以一起使用NHibernate和SQL,请参阅[关于查询的文档](http://nhforge.org/doc/nh/en/index.html#querysql)和[DML语句(http://nhforge.org/doc/nh/en/index.html#batch-direct)。也许你可以告诉我们更多关于你的问题。 – oddparity

回答

0

在这种情况下,我会让它们映射到保证(尽可能多),没有现有的代码中断。

然后,我会通过NHProf这样的工具对应用进行配置以查看瓶颈位置。这会让你了解瓶子的性能瓶颈在哪里。

然后,您可以覆盖现有的代码,以使用原始SQL更接近金属。不过,我仍然建议您查看一个微型orm,如DapperMassive,它们仍然可以执行SQL查询并将结果映射到强类型列表。

如果您的问题在于插入,那么a)使用无状态会话或使用另一个工具,如SQL Bulk copy

如果你这样做的权利,你可能不需要改变你的任何模型类,这意味着你可能会减少代码。但是,有人警告说,急切/懒惰的加载问题可能会开始出现。