2010-10-16 16 views
6

के साथ संग्रहित प्रक्रिया आउटपुट पैरामीटर प्राप्त करना मैंने एक संग्रहीत प्रक्रिया बनाई है जो उपयोगकर्ता बनाने के लिए पैरामीटर लेता है। यदि उपयोगकर्ता पहले से मौजूद है तो यह 'पैरामीटर पहले से मौजूद' पर आउटपुट पैरामीटर सेट करता है और कुछ भी नहीं करता है।LINQ और इकाई फ्रेमवर्क

अब मैं अपने इकाई की रूपरेखा को यह समारोह (InsertNewUser) मैप किया गया है और इसलिए है कि यह बोल रहा हूँ:

 
context.InsertNewUser(email, name, passwordhash, salt, ???) 

??? वह जगह है जहां मुझे परेशानी हो रही है। संग्रहीत प्रक्रिया में यह पैरामीटर एक OUTPUT पैरामीटर है। मैंने एक स्ट्रिंग घोषित करने की कोशिश की और फिर "घोषित आउटस्ट्रिंग" में गुज़रने की कोशिश की लेकिन यह सही नहीं था।

मुझे यकीन नहीं है कि मैं इस बारे में सही तरीके से विचार कर रहा हूं, कोई विचार?

इस संग्रहित प्रक्रिया है:

 
ALTER PROCEDURE dbo.InsertNewUser 

    (
    @eMail nvarchar(256), 
    @firstName nvarchar(256), 
    @lastName nvarchar(256), 
    @passwordHash nvarchar(256), 
    @salt nvarchar(256), 
    @output nvarchar(256) OUTPUT 
    ) 

AS 
    /* Saves a user to the db. */ 
    BEGIN 
    --First check if the user doesn't exist 
    IF EXISTS (SELECT eMail FROM UserSet WHERE eMail = @eMail) 
     --Return that user exists 
     SET @output = 'User exists' 
    ELSE  
     INSERT INTO UserSet 
     VALUES (@eMail, @firstName, @lastName, @passwordHash, @salt) 
    END 

उत्तर

5

मैं इसे इस कोड के साथ हल:

 
//This will provide the parameter 
System.Data.Objects.ObjectParameter parameter = new ObjectParameter("output", "nvarchar(256)"); 
//This will contain the returned values 
ObjectResult result = context.CheckIfUserExists(eMail, parameter); 
10

तुम भी निम्नलिखित तरीके से लिख सकते हैं:

string output = "";  
context.InsertNewUser(email, name, passwordhash, salt, ref output) 
+0

तो .. बहुत .. आसान .. मुझे रेफरी क्यों नहीं लगता ?! केवल कोशिश की – Phil

0

मैं इसे हल निम्नलिखित कोड के साथ:

//Execute stored procedure 
ObjectParameter newkey = new ObjectParameter("newKey", typeof(char)); 
db.RF_GetNewKey("A", "B", "S",newkey); 

//get new key output from stored procedure RF_GetNewKey 
string myKey=newkey.Value.ToString(); 

इकाई फ्रेमवर्क 6

संबंधित मुद्दे