Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用nhibernate中的存储过程插入_Nhibernate_Insert - Fatal编程技术网

使用nhibernate中的存储过程插入

使用nhibernate中的存储过程插入,nhibernate,insert,Nhibernate,Insert,我使用以下代码段使用存储过程插入值。代码正在成功执行,但数据库中未插入任何记录 请举个简单的例子 **---- stored procedure--------** Create PROCEDURE [dbo].[SampleInsert] @id int, @name varchar(50) AS BEGIN insert into test (id, name) values (@id, @name); END **------.hbm file-------** &

我使用以下代码段使用存储过程插入值。代码正在成功执行,但数据库中未插入任何记录

请举个简单的例子

**---- 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]));
**----存储过程--------**
创建过程[dbo]。[SampleInsert]
@id int,@name varchar(50)
作为
开始
在测试(id,name)中插入值(@id,name);
结束
**------.hbm文件-------**
exec样本插入
:Id,:Name
**--------使用上述sp插入值的c代码------**
ISessionFactory sessionFactory=新配置().Configure().BuildSessionFactory();
ISession session=sessionFactory.OpenSession();
IQuery=session.GetNamedQuery(“过程”);
SetParameter(“Id”,“222”);
SetParameter(“Name”、“testsp”);
query.SetResultTransformer(新的NHibernate.Transform.AliasToBeanConstructorResultTransformer(typeof(Procedure).GetConstructors()[0]);
问候
Jcreddy

首先,什么时候执行查询

第二,SP不返回任何内容,您添加ResultTransformer的目的是什么

代码应该如下所示:

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