हाउडी, येल में एक आमंत्रण विधि के लिए एक पैरामीटर के रूप में एक इकाई का उपयोग करने के लिए वैकल्पिक! StackOverflow पर पहला सवाल! :-)डब्ल्यूसीएफ आरआईए सेवाओं
तो यहां परिदृश्य है: हम सिल्वरलाइट 4 के साथ एक वेब ऐप पर काम कर रहे हैं और वेब सेवा के लिए डब्ल्यूसीएफ आरआईए सेवा 1.0 एसपी 1 बीटा का उपयोग कर रहे हैं। मेरे पास एंटिटी फ्रेमवर्क डिज़ाइनर में मेरी संस्थाएं हैं, लेकिन मैं कक्षाएं उत्पन्न करने के लिए थोड़ा-संशोधित एडीओ.NET सी # पॉको एंटीटी जेनरेटर टेम्पलेट का उपयोग कर रहा हूं।
मैं क्या करना चाहते हैं क्या है निम्न हस्ताक्षर के साथ एक डोमेन सेवा के अंदर एक विधि है:
[EnableClientAccess]
public class ResultService : DomainService
{
[Invoke]
public SerializableResult CalculateResult(EntityOne e1, EntityTwo e2);
}
मैं, अन्य सेवाओं में प्रश्नों के माध्यम से दोनों EntityOne और EntityTwo लौट रहा ग्राहक के लिए तो जैसे:
[EnableClientAccess]
public class EntityOneService : DomainService
{
public IQueryable<EntityOne> GetEntityOnes();
}
[EnableClientAccess]
public class EntityOneService : DomainService
{
public IQueryable<EntityTwo> GetEntityTwos();
}
उन वर्गों सफलतापूर्वक सिल्वरलाइट परियोजना में उत्पन्न किया जा रहा है। SerializableResult नहीं एक कुंजी है।
जब मैं संकलन करने का प्रयास करता हूं, तो मुझे निम्न त्रुटि मिलती है: "ऑपरेशन नाम 'गणना गणना' आवश्यक हस्ताक्षर के अनुरूप नहीं है। पैरामीटर प्रकार एक इकाई या जटिल प्रकार, जटिल प्रकारों का संग्रह होना चाहिए, या इनमें से एक पूर्वनिर्धारित धारावाहिक प्रकार। "
मेरे शोध में, मुझे मिली सबसे उपयोगी जानकारी this post by Jeff Handley की टिप्पणियों में थी।
ध्यान दें, पीटर एक टिप्पणी में पूछा:
I get an 'does not conform to the required signature ...' compile error if my complex object has an [Key] Attribute. When I remove this attribute I can use the object as parameter for an Invoke operation.
जेफ की प्रतिक्रिया:
This is by design. Complex objects cannot have Key properties. If you have a Key the class gets treated as an Entity.
तो यह लग रहा है जैसे कि किसी भी आगे के प्रयासों काम करने के लिए व्यर्थ हो जाएगा मेरी विधि प्राप्त करने की कोशिश करने के लिए। हालांकि, मैं सोच रहा था कि क्या कोई और इस समस्या से आया है, और उन्होंने इसे हल करने के लिए क्या किया।
बहुत बहुत धन्यवाद!
क्या सीरियलज़ेबल रिजल्ट क्लाइंट पर उत्पन्न हो रहा है? मुझे आश्चर्य है कि यह हमारी कॉम्प्लेक्स टाइप पहचान में एक बग है, जहां हमें एक एनालिट परिणाम के रूप में उपयोग किए जाने से पहले एक इकाई पर एक संपत्ति के रूप में सर्फिज़ेबल रीसेट प्रकार की आवश्यकता हो सकती है। –
यदि मैं कोशिश करता हूं: "[Invoke] public SerializableResult CalculateResult();", क्लाइंट पर उत्पन्न SerializableResult _is_। –
फिर यह आपकी संस्थाओं के आकार के साथ कुछ लगता है। EntityOne और EntityTwo Entity से प्राप्त करने के रूप में उत्पन्न होते हैं? –