2010-06-09 98 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()