मैं नीचे दिए गए समाधान को यहां पोस्ट करता हूं क्योंकि कुछ खोज के बाद यह वह जगह है जहां मैं उतरा, इसलिए अन्य भी हो सकता है। मैं संग्रहीत कार्यविधि को कॉल करने के लिए EF 6 का उपयोग करने का प्रयास कर रहा था, लेकिन एक समान त्रुटि थी क्योंकि संग्रहीत कार्यविधि में एक लिंक किया गया सर्वर उपयोग किया जा रहा था ।
ऑपरेशन नहीं किया जा सका क्योंकि लिंक किए गए सर्वर के लिए OLE DB प्रदाता _ एक वितरित लेनदेन शुरू करने में असमर्थ था
भागीदार लेनदेन प्रबंधक ने दूरस्थ / नेटवर्क लेनदेन के लिए अपने समर्थन को अक्षम कर दिया है *
SQL क्लाइंट पर कूदने से मेरी समस्या ठीक हो गई, जिसने मेरे लिए भी पुष्टि की कि यह एक ईएफ चीज थी।
EF मॉडल उत्पन्न विधि आधारित प्रयास:
db.SomeStoredProcedure();
ExecuteSqlCommand आधारित प्रयास:
db.Database.ExecuteSqlCommand("exec [SomeDB].[dbo].[SomeStoredProcedure]");
साथ में:
var connectionString = db.Database.Connection.ConnectionString;
var connection = new System.Data.SqlClient.SqlConnection(connectionString);
var cmd = connection.CreateCommand();
cmd.CommandText = "exec [SomeDB].[dbo].[SomeStoredProcedure]";
connection.Open();
var result = cmd.ExecuteNonQuery();
उस कोड को छोटा किया जा सकता है, लेकिन मुझे लगता है कि यह संस्करण डिबगिंग और स्टेपिंग के लिए थोड़ा अधिक सुविधाजनक है।
मुझे विश्वास नहीं होता है कि Sql Client आवश्यक रूप से एक पसंदीदा विकल्प है, लेकिन मुझे लगा कि यह कम से कम साझा करने के लायक था अगर किसी और को भी इसी तरह की समस्या हो तो वह यहां Google द्वारा उतरा जाए।
उपरोक्त कोड C # है, लेकिन Sql क्लाइंट पर स्विच करने की कोशिश की अवधारणा अभी भी लागू होती है। बहुत कम से कम यह करने के लिए प्रयास करने के लिए नैदानिक होगा।