Вставить с помощью хранимой процедуры из nhibernate - PullRequest
0 голосов
/ 09 июня 2010

Я использую следующие фрагменты кода для вставки значений с помощью хранимой процедуры.код выполняется успешно, но запись в БД не вставлена.

Пожалуйста, предложите на простом примере.

**---- 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 голосов
/ 09 июня 2010

Во-первых, когда вы выполняете запрос?

Во-вторых, этот SP ничего не возвращает, для чего вы добавляете ResultTransformer?

Код должен выглядеть следующим образом:

session.GetNamedQuery("Procedure")
       .SetParameter("Id", "222")
       .SetParameter("Name", "testsp")
       .ExecuteUpdate()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...