मेरे रिपोजिटरी में क्यों नहीं मिला?

इस आलेख को एक गाइड के रूप में उपयोग करने में यहां मैं अपने रिपोजिटरी कोड में GET विधि जोड़ने की कोशिश कर रहा हूं जो एक आईडी के आधार पर एक "रिकॉर्ड" लौटाएगा। लेकिन उदाहरण कोड दिया गया:

public Product Get(int id)
{
    return products.Find(p => p.Id == id);
}

... जब मेरी कक्षा के प्रकार के लिए अनुकूलित किया गया:

public Platypus Get(int id)
{
    return platypi.Find(p => p.Id == id);
}

... संकलित नहीं होगा क्योंकि "ढूंढें" नहीं मिला है; और आईडीई के संदर्भ मेनू से कोई भी "समाधान" उपलब्ध नहीं है।

The err msg on trying to compile is, "HandheldServer.Models.Platypus does not contain a definition for 'Find'*"

लेकिन क्यों [श, डब्ल्यू] यह हो सकता है? आलेख से संबंधित वर्ग में कोई भी विधि विधि परिभाषित नहीं है, या तो ... ???

2
नहीं, मैं ईएफ का उपयोग नहीं कर रहा हूँ। और, जैसा कि मैंने अपने उत्तर में उल्लेख किया है, यह हल हो गया है (और मैंने इसे 3 घंटे पहले चिह्नित किया)।
जोड़ा लेखक B. Clay Shannon, स्रोत
लिंक किए गए आलेख के साथ बहुत अधिक संबंध नहीं है, यह मुख्य रूप से एक ईएफ प्रश्न (1 टैग गुम है) लगता है। अगर आप जवाब चाहते हैं, तो पूछने में थोड़ा प्रयास करें।
जोड़ा लेखक Henk Holterman, स्रोत
यह अभी भी एमवीसी या वेब एपीआई के बारे में नहीं है।
जोड़ा लेखक Henk Holterman, स्रोत

3 उत्तर

In the tutorial to which you linked, products is of type List. And List does, in fact, have a Find()` method.

आपके द्वारा देखे जा रहे त्रुटि संदेश के अनुसार, platypi प्रकार हैंडहेल्ड सर्वर। मॉडल। प्लैटिपस है, जो कि उस संग्रह के बजाय मॉडल का एक उदाहरण है आदर्श। जब तक आप अपने मॉडल पर Find() को परिभाषित नहीं करते हैं, तब तक कोई भी उदाहरण उस विधि में नहीं होगा। (न ही यह चाहिए ... एक उदाहरण में "खोजने" के लिए वास्तव में कुछ भी नहीं है।)

संक्षेप में, आपकी platypi ऑब्जेक्ट शायद Platypus ऑब्जेक्ट का संग्रह होना चाहिए, एक उदाहरण नहीं। कम से कम अगर यह उस ट्यूटोरियल में रिपोजिटरी कार्यान्वयन को ध्यान में रखते हुए है।

1
जोड़ा

In the sample code products is a List. Find is a standard method on a generic collection.

1
जोड़ा

यह मेरे हिस्से पर एक गूंगा गलती थी (मुझे बेहतर जाना चाहिए था/अधिक स्पष्ट रूप से सोच रहा था)। तो यह वही काम करता है:

public InventoryItem Get(int id)
{
    return inventoryItems.Find(i => 0 == (String.Compare(i.Id, id.ToString())));
}
0
जोड़ा