2010-06-09 6 views
0

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

Просьба предложить простой пример.

**---- 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

ответ

0

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

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

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

session.GetNamedQuery("Procedure") 
     .SetParameter("Id", "222") 
     .SetParameter("Name", "testsp") 
     .ExecuteUpdate() 
Смежные вопросы