使用nhibernate中的存储过程插入

时间:2010-06-09 10:34:17

标签: nhibernate insert

我使用以下代码片段来使用存储过程插入值。代码正在成功执行,但没有在DB中插入记录。

请用简单的例子来推荐。

**---- stored procedure--------**
Create PROCEDURE [dbo].[SampleInsert]
    @id int, @name varchar(50)
AS
BEGIN   
    insert into test (id, name) values (@id, @name);
END

**------.hbm file-------**
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
  <sql-query name="Procedure">
    exec SampleInsert
    :Id,:Name
  </sql-query>
</hibernate-mapping>

**--------c# code to insert value using above sp------**
ISessionFactory sessionFactory = new Configuration().Configure().BuildSessionFactory();
ISession session = sessionFactory.OpenSession();
IQuery query = session.GetNamedQuery("Procedure");
query.SetParameter("Id", "222");
query.SetParameter("Name", "testsp");
query.SetResultTransformer(new NHibernate.Transform.AliasToBeanConstructorResultTransformer(typeof(Procedure).GetConstructors()[0]));

此致 Jcreddy

1 个答案:

答案 0 :(得分:0)

首先,您何时执行查询?

其次,SP没有返回任何内容,你为ResultTransformer添加了什么?

代码应如下所示:

session.GetNamedQuery("Procedure")
       .SetParameter("Id", "222")
       .SetParameter("Name", "testsp")
       .ExecuteUpdate()
相关问题