【发布时间】:2010-02-03 08:23:35
【问题描述】:
在 NHibernate 中使用存储过程从数据库中读取数据库记录是一种好方法吗?如果是,那么为什么或者如果不是,那么为什么? 该应用程序只有在数据访问层使用 NHibernate 从数据库中读取值的功能,没有更新和插入,只是检索。
【问题讨论】:
标签: sql-server nhibernate stored-procedures
在 NHibernate 中使用存储过程从数据库中读取数据库记录是一种好方法吗?如果是,那么为什么或者如果不是,那么为什么? 该应用程序只有在数据访问层使用 NHibernate 从数据库中读取值的功能,没有更新和插入,只是检索。
【问题讨论】:
标签: sql-server nhibernate stored-procedures
在我看来,只有在处理大量数据时才需要存储过程。性能更好,因为数据库管理系统可以使用其优化例程来加快对存储数据的访问。
不使用存储过程的第二个原因是,您希望将 dbms 和您的应用程序分开。因此,您可以根据需要更改数据库系统。如果您使用存储过程,您将绑定到这个指定的 dbms(即 oracle)。
【讨论】:
正在使用存储过程从数据库中读取数据库记录 在 NHibernate 中有一个好的方法吗?
如果您正在为数据网格补充水分,则不会。虽然 NHibernate 将允许这种情况,但它对 NHibernate 的使用很差,因为 NHibernate 并没有增加太多价值。为什么要依赖 NHibernate 而基本上没有任何回报?
如果您要为物体补水,可以。 NHibernate 至少用于将存储过程返回的结果映射到对象的最小目的。您对一个小功能有很大的依赖,但这可能比推出自己的解决方案要好。
对于任何 .NET ORM,答案基本相同,假设 ORM 可以根据存储过程返回的数据对对象进行水合。
【讨论】: