2010-06-09 3 views
0

다음 코드 단편을 사용하여 저장 프로 시저를 사용하여 값을 삽입하고 있습니다. 코드가 성공적으로 실행되지만 DB에 레코드가 삽입되지 않습니다.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() 
관련 문제