चूंकि अब काम करने वाली एकमात्र चीज रिटर्न प्रकार को किसी इकाई में मैप करना है, एक वर्कअराउंड एक दृश्य बनाना है जो रिटर्न डेटा से मेल खाता है और दृश्य के लिए एक इकाई बनाता है। यह केवल तभी काम करेगा जब एसपी परिणाम सेट वापस करने के लिए एक चयन कर रहा है, वापसी मूल्य नहीं। मैं यह इतना की तरह, एक नमूना अनुप्रयोग के साथ काम करने के लिए मिल गया: सपा:
ALTER PROCEDURE [dbo].[DoSomething]
@param1 varchar(50),
@param2 varchar(50)
AS
BEGIN
DECLARE @ID INT
SET NOCOUNT ON;
INSERT tmp_header (fname, lname) VALUES (@param1, @param2)
SET @ID = SCOPE_IDENTITY()
SELECT @ID AS 'id'
END
देखें:
CREATE VIEW [dbo].[View_1]
AS
SELECT 0 as id
समारोह आयात View_1 को वापसी प्रकार की स्थापना बनाएँ और मॉडल बनाने।
कोड में
:
class Program
{
static void Main(string[] args)
{
using (PS_RADSTESTEntities ctx = new PS_RADSTESTEntities())
{
EntityConnection ec = ctx.Connection as EntityConnection;
ec.Open();
DbTransaction txn = ec.BeginTransaction();
ObjectResult<View_1> result = ctx.DoSomething("Toby", "Kraft");
View_1 row = result.Single();
int id = row.id;
// do some other interesting things ...
ctx.SaveChanges();
txn.Commit();
}
}
}
स्तंभ नाम देख सकते हैं और सपा के बीच बिल्कुल वैसा ही स्थापित करने के लिए सुनिश्चित करें। टोबी
स्रोत
2009-04-24 16:27:42
धन्यवाद। यूआई भ्रामक है क्योंकि यह स्केलर और शून्य वापसी प्रकारों का चयन करने की अनुमति देता है। –
मेरे पास CreateDbCommand का उपयोग करने पर एक फॉलोअप प्रश्न है। देखें: http://stackoverflow.com/questions/587173/execute-a-stored-procedure-in-entity-framework-from-within-an-ado-net-dataservice –