2015-01-07 7 views
5

मैं अपनी नई वी 4 सेवा का निर्माण कर रहा हूं और जब तक मैंने एक नए मॉडल/इकाई के लिए नया नियंत्रक जोड़ा नहीं है तब तक यह सब ठीक हो रहा था और यह त्रुटि मिली एक परीक्षण चलाने के लिए साइट शुरू करना।स्टार्ट-अप पर ओडाटा वी 4 त्रुटि: सेगमेंट के लिए संसाधन नहीं मिला 'जो भी'

नियंत्रक को दूसरों की तरह सही ढंग से कोड किया गया प्रतीत होता है।

नियंत्रक 'ग्राहकोडाटा' में 'GetFeed' क्रिया पर पथ टेम्पलेट 'ग्राहक' मान्य OData पथ टेम्पलेट नहीं है। सेगमेंट 'ग्राहक' के लिए संसाधन नहीं मिला।

पृथ्वी पर इसका क्या अर्थ है?

उत्तर

0

यदि यह स्टार्ट-अप पर हो रहा है तो जांच करें कि आपने स्टार्ट-अप के दौरान मॉडल निर्माता को अपने ग्राहक मॉडल प्रकार को जोड़ा है।

builder.EntitySet<CustomerModel>("Customers"); 

ऐसा लगता है विशेषता मैपिंग जैसे नए नियंत्रक के लिए प्रगणित किया जा रहा है लेकिन यह मैप नहीं कर सकते ग्राहक मॉडल वापस एक इकाई सेट करने के लिए टाइप करें।

नोट: क्यू/ए मैंने इसे लगभग तुरंत बाहर निकाला लेकिन मैं यहां पोस्ट कर रहा हूं क्योंकि मैं शायद यह फिर से करूँगा और भूल जाऊंगा कि मैंने क्या किया है!

1

यह त्रुटि वेब API विशेषता रूटिंग परिदृश्य में होती है। वेब एपीआई विशेषता रूटिंग HttpConfiguration के प्रारंभकर्ता को चलाते समय सभी पाए गए ODataControllers के लिए सभी ODataRouteAttributes की जांच करेगा।

आपने कहा कि त्रुटि के बाद आप एक नया मॉडल/संस्था जोड़ा हुआ है, इसलिए मुझे लगता है कि आप शायद दो Edm मॉडल है:

ModelA, ModelB 

और EntitySet "ग्राहकों" के लिए, केवल मॉडल में से एक में है उदाहरण मॉडलए।

इसके अलावा, आप नए जोड़े गए मॉडल के लिए निम्नलिखित कोड का हो सकता है:

config.MapODataServiceRoute("...", "...", ModelB); 

स्टार्ट-अप, वेब एपीआई विशेषता पाता है:

[ODataRoute("Customers")] 
public IHttpActionResult Get() 
{ 
... 
} 

लेकिन, जाल एपीआई नहीं कर सकते ModelB में सेट "ग्राहक" इकाई ढूंढें।

मुझे लगता है कि आप इसे एक मॉडल में डालकर इसे ठीक कर सकते हैं।

+0

यह एक क्यू/ए था इसलिए मैंने जवाब दिया। मेरे पास इस ओडाटा वी 4 के लिए केवल एक मॉडल है, लेकिन आपका निदान सही था। "मॉडल" शब्द भ्रमित है क्योंकि यह एक मॉडल वर्ग (इकाई) या एक ईडीएम (इकाई डेटा मॉडल) का संदर्भ ले सकता है। मुझे लगता है कि मामला, मैं एक नई इकाई मॉडल श्रेणी और नियंत्रक जोड़ूंगा लेकिन ओडाटा मॉडल निर्माता के साथ इकाई सेट को पंजीकृत करना भूल गया था (ओडाटा ईडीएम वर्तमान में डिजाइन द्वारा ईएफ ईडीएम से अलग है)। –

+0

कोई अपराध नहीं है, लेकिन मैं अपने स्वयं के उत्तर को सरल, सटीक और उस कोड को हल करता हूं जो इस मुद्दे को हल करता है। हालांकि मैं आपके जवाब के लिए आभारी हूं। –

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