ストアドプロシージャ(SQL Server)をNHibernateで実行できません。私は、次のしているマッピング:コード内引数付きストアドプロシージャ
<sql-query name="udp_MyStoredProc">
<query-param name="Id" type="Int32" />
<query-param name="Name" type="String" />
<return-scalar column="ResId" type="Int32"/>
EXEC udp_MyStoredProc @Id = :Id,
@Name = :Name
</sql-query>
:これは、次の例外が発生
IQuery query = _HibSession.GetNamedQuery("udp_MyStoredProc");
query.SetInt32("Id", id);
query.SetString("Name", name);
var res = query.List();
:
[SQL: EXEC udp_MyStoredProc @Id = @p0, @Name = @p1] ---> System.Data.SqlClient.SqlException: Procedure or function udp_MyStoredProc has too many arguments specified.
私はと一緒に間違っているのか分かりません議論?私もread何かについて '?'パラメータのプレースホルダとして、私はそれをかなり理解していません。ストアドプロシージャの
署名:私はServer Management Studioの中にこのような何かを行う場合は
ALTER PROCEDURE [dbo].[udp_MyStoredProc]
(
@Id int,
@Name NVARCHAR(255)
)
AS
BEGIN ... END
、それは動作します:すべてのティップスのため
EXEC udp_MyStoredProc @Id = 30, @Name = 'test'
THX。
sl3dg3
ができますストアドプロシージャの定義を表示しますか? –
@ marc_s、申し訳ありませんが、私は忘れました - >更新しました。 – sl3dg3
私は(もはや)NHibernateに精通していますが、 ''が問題だと思います。その1つのマッピングフラグメントを削除するとどうなりますか? –