मैं इस प्रश्न पर कई मृत सिरों के साथ आ रहा हूं। माना जाता है कि, .NET 3.5 SP1 में डब्ल्यूसीएफ अनुबंधों में एडीओ.NET इकाई फ्रेमवर्क इकाइयों के लिए समर्थन है। लेकिन जब मैं इस पर ठोस जानकारी की तलाश करता हूं तो मुझे बहुत सारे जवाब नहीं मिल रहे हैं। मुझे एक एमएसडीएन धागे पर यह एक स्निपेट मिला। क्या किसी को इसका कोई अनुभव है? [DataContract] के साथ क्या हुआ? क्या यह सब वहाँ है? इस पर इतनी छोटी सामग्री क्यों है?डब्लूसीएफ इकाई फ्रेमवर्क से अनुबंध?
यह माइक्रोसॉफ्ट में टिम मल्लालीयू का उत्तर है।
इकाई फ्रेमवर्क में उत्पन्न इकाई प्रकार डिफ़ॉल्ट डेटा अनुबंध से हैं। यदि मैं एंटीटी डिज़ाइनर में निम्न प्रकार का एक साधारण मॉडल बनाना चाहता हूं: कार्ट एंटीटी टाइप डिफ़ॉल्ट रूप से डेटा सदस्यों के रूप में एनोटेटेड सभी गुणों के साथ डेटाकंट्रैक्ट होता है। हम तो इस प्रकार एक WCF सेवा में इस का उपयोग कर सकते हैं:
[ServiceContract]
public interface IService1
{
[OperationContract]
Cart[] AllCarts();
}
public class Service1 : IService1
{
public Cart[] AllCarts()
{
using (MSPetShop4Entities context = new MSPetShop4Entities())
{
var carts = from c in context.Carts select c;
return carts.ToArray();
}
}
}
संस्थाओं DataContracts हैं के रूप में आप अब अपनी सेवाओं को रोल कर सकते हैं आप मनचाहे ढंग से और तार भर में इन भेजें।
अंत में मैंने बिल्कुल ऐसा किया है। मुझे उम्मीद है कि यह लंबे समय तक गलती नहीं है। अब तक जो नकारात्मकता मैं देख रहा हूं वह यह है कि मैंने मॉडल पक्ष की बजाय क्लाइंट साइड पर एक रिपोजिटरी पैटर्न लागू करना समाप्त कर दिया है। मैं इसके बारे में खुश नहीं हूं और शायद बाद में इसे फिर से प्रतिक्रिया देना होगा। – Weej
एडीओ.NET डेटा सेवाओं का खतरा यह है कि डीडीडी दृष्टिकोण का पालन करना मुश्किल हो सकता है। आपको ADO.NET डेटा सेवाओं के साथ ही व्यवहार करना चाहिए: डेटा सेवाएं। यदि आपको मॉडल सेवाओं के एक मजबूत सेट की आवश्यकता है, तो आपको इसे अलग से बनाना होगा। –
एडीओ .NET डेटा सर्विसेज और ईएफसीएफ 4.1 के नवीनतम संस्करण के साथ भी यह अभी भी गंभीर रूप से सीमित है। उदाहरण के लिए, LINQ से एकत्रीकरण ऑपरेटरों में से कोई भी समर्थित नहीं है, जिसमें 'विशिष्ट() 'शामिल है। यदि आपको सीआरयूडी कार्यों से ज्यादा कुछ चाहिए तो आपको डेटा सेवाओं से दूर रहना चाहिए। – Yuck