私はINTを返すSQL関数を持っています。私がdapperを使って呼び出しようとすると、結果は返されません。DapperはSQL関数から値を返すことができますか?
私はこのようにそれを呼んでいる:
var result = _connection.Query<int>("functionname", new {Parm = 123}, commandType: CommandType.StoredProcedure);
は、DapperのサポートSQL機能していますか?
私はINTを返すSQL関数を持っています。私がdapperを使って呼び出しようとすると、結果は返されません。DapperはSQL関数から値を返すことができますか?
私はこのようにそれを呼んでいる:
var result = _connection.Query<int>("functionname", new {Parm = 123}, commandType: CommandType.StoredProcedure);
は、DapperのサポートSQL機能していますか?
Dapperがサポートします。あなたの機能は正しいデータベースにありますか?
ここには簡単なVB.NETの例があります。
Using conn = IDbConnectionFactory.CreateFromProvider("System.Data.SqlClient", CONNECTION_STRING)
Dim sqlCommand As String = "SELECT dbo.fx_SumTwoValues(@valueOne,@valueTwo) As SumOfTwoValues"
conn.Open()
Dim result = (conn.Query(Of Integer)(sqlCommand, New With {.valueOne = 1, .valueTwo = 2})).First()
Console.WriteLine(result.ToString)
End Using
ここに私が私の接続で使用しているのと同じデータベースで作成した機能があります。
CREATE FUNCTION fx_SumTwoValues
(@Val1 int, @Val2 int)
RETURNS int
AS
BEGIN
RETURN (@[email protected])
END
GO
このお試しください:私が間違ってやっていたビットが `functionname`を呼んでいたし、それがcolumnname`としてdbo.functionname選択し`されている必要があります
result = _connection.Query<dynamic>("SELECT dbo.functionName(" + fnParam + ")", commandType: CommandType.Text);
を – ilivewithian