2010-06-09 4 views
0

J'utilise les extraits de code suivants pour insérer des valeurs à l'aide de la procédure stockée. le code s'exécute avec succès mais aucun enregistrement n'est inséré dans DB.Insérer à l'aide de la procédure stockée de nhibernate

Veuillez suggérer avec un exemple simple.

**---- 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])); 

Cordialement Jcreddy

Répondre

0

Tout d'abord, lorsque vous exécutez la requête? Deuxièmement, que SP ne renvoie rien, à quoi ajoutez-vous ResultTransformer?

Le code devrait ressembler à ceci:

session.GetNamedQuery("Procedure") 
     .SetParameter("Id", "222") 
     .SetParameter("Name", "testsp") 
     .ExecuteUpdate() 
Questions connexes