2010-06-04 12 views
17

के साथ एसपी में आउटपुट पैरामीटर का उपयोग कैसे करें मैंने अपने मॉडल को अपनी संग्रहीत प्रक्रिया के साथ अपडेट किया और मॉडल ब्राउज़र में मैं देख सकता हूं कि इसमें एक फंक्शन आयात भी है।
मेरा एसपी एक रिकॉर्ड दर्ज करता है यदि कोई मौजूद नहीं है और 1 और रिटर्न 0 देता है, तो मुझे लगता है कि बहुत आसान है।ईएफ 4.0

सपा

CREATE PROCEDURE [dbo].[User_UpdateMessage] 
(
@UserId int = 0, 
@UserId2 int = 0, 
@Success bit = 0 OUTPUT 
) 
AS 
BEGIN 
SET NOCOUNT ON; 

IF NOT EXISTS (SELECT [UserIdFrom] FROM [dbo].[MessageUpdate] WHERE [UserIdFrom] = @UserId AND [UserIdTo] = @UserId2) 
BEGIN 
    INSERT INTO [dbo].[MessageUpdate] ([UserIdFrom], [UserIdTo]) 
    VALUES (@UserId, @UserId2) 
    SELECT @Success = 1; 
END 
ELSE 
    SELECT @Success = 0; 
END 

मेरी कोड में मैं सपा बोल रहा हूँ:

// Output Parameter 
System.Data.Objects.ObjectParameter paramSuccess1 = 
new System.Data.Objects.ObjectParameter("Success", typeof(byte)); 
_Entity.User_UpdateMessage(id, userId, paramSuccess1); 

जबकि निम्न त्रुटि के साथ सपा को क्रियान्वित यह विफल हो रहा है:

The data reader returned by the store data provider does not have enough columns for the query requested

[अद्यतन]
जैसा कि मैंने यह लिखा था, मैंने समस्या हल की। मॉडल डिजाइनर में, वापसी का प्रकार कोई नहीं होना चाहिए, मुझे बाइट वापस करने के लिए यह था।

इस प्रश्न का उत्तर और संवर्द्धन या परिवर्तन हो सकता है।

+0

मैं भी एक ही समस्या का सामना करना पड़ आप है .... आप किसी भी विचार मिला। – Ramakrishnan

उत्तर

14

मुझे भी एक ही समस्या थी, वापसी के प्रकार को int32 के बजाय बदल दिया गया। धन्यवाद मुझे डिबगिंग

+2

आप यह मॉडल ब्राउज़र> फ़ंक्शन आयात> किसी भी फ़ंक्शन आयात के गुणों पर क्लिक कर सकते हैं> फिर वापसी प्रकार 'कोई नहीं' चुनें –

0

इस नीचे उपयोग करने का प्रयास के घंटे बचा लिया ..

// Output Parameter 
System.Data.Objects.ObjectParameter paramSuccess1 = 
    new System.Data.Objects.ObjectParameter("Success", typeof(bool)); 
_Entity.User_UpdateMessage(id, userId, paramSuccess1); 
संबंधित मुद्दे