2012-03-26 12 views
6

मेरे पास एक एसक्यूएल फ़ंक्शन है जो एक आईएनटी देता है, जब मैं इसे डैपर के माध्यम से कॉल करने का प्रयास करता हूं तो मुझे हमेशा कोई परिणाम नहीं मिलता है।क्या डैपर एक एसक्यूएल फ़ंक्शन से मूल्य वापस कर सकता है?

मैं इस तरह यह फोन कर रहा हूँ:

var result = _connection.Query<int>("functionname", new {Parm = 123}, commandType: CommandType.StoredProcedure); 

करता व्यवसायिक समर्थन एसक्यूएल कार्यों?

उत्तर

8

डैपर को इसका समर्थन करना चाहिए। क्या आप निश्चित हैं, आपका फ़ंक्शन सही डेटाबेस में है?

यहां एक त्वरित 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 
+1

बिट मैं गलत कर रहा था 'बुला रहा था functionname' और यह किया जाना चाहिए था' dbo.functionname columnname' के रूप में चयन – ilivewithian

0

इस प्रयास करें:

result = _connection.Query<dynamic>("SELECT dbo.functionName(" + fnParam + ")", commandType: CommandType.Text); 
संबंधित मुद्दे