首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只有存储过程的NHibernate

只有存储过程的NHibernate
EN

Stack Overflow用户
提问于 2010-03-20 09:15:39
回答 1查看 3.3K关注 0票数 2

我想让NHibernate在调用ISession.Get通过键获取实体时调用存储过程,而不是使用dynamic SQL。

我们一直在使用NHibernate,并允许它为查询和插入/更新/删除生成我们的SQL,但现在可能必须将我们的应用程序部署到一个需要我们使用存储过程进行所有数据库访问的环境中。我们可以在.hbm.xml映射文件中使用sql-insert、sql-update和sql-delete进行插入/更新/删除。我们的hql和criteria查询将不得不替换为存储过程调用。

但是,我还没有弄清楚如何强制NHibernate使用自定义存储过程通过实体的键来获取实体。我仍然希望能够调用ISession.Get,如下所示:

代码语言:javascript
复制
using (ISession session = MySessionFactory.OpenSession())
{
    return session.Get<Customer>(customerId);
}

还有延迟加载对象,但是我希望NHibernate调用我的"GetCustomerById“存储过程,而不是生成动态SQL。

这可以做到吗?

也许NHibernate不再适合我们必须支持的新环境。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-03-20 09:28:15

我自己还没有尝试过,但你可能想了解一下native sql and custom loader的概念。

以下是Ayende Rahien的一篇好文章:Using NHibernate With Stored Procedures

这是Scott McMaster基于NH测试版的另一个更容易理解的版本:Stored Procedures in NHibernate

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2481494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档