आपको शायद एपीआई को डीबग करना होगा और किसी कारण को कम करने में मदद के लिए अधिक विवरण निर्दिष्ट करना होगा। कुछ चीज़ें जो मैं देख सकता हूँ:
var prestation = queryString.FirstOrDefault();
// Handle when prestation comes back #null. Is that valid?
var results = db.Partenaires.Where(p => p.PartenairePrestations.Any(pp => pp.Prestation.NomPrestation == prestation.Value))
// .ToList() // Avoid .ToList() here... Select the entity properties you need.
.Select(p => new PartenaireMapItem {
IdPartenaire = p.IdPartenaire,
FirstName = p.FirstName,
LastName = p.LastName,
// NomComplet = p.LastName.Substring(0,1).ToUpper() + ". " + p.FirstName, // Remove. Make this a computed property in your view model.
Type = p.Type,
// DureeMin = 50, // Can remove, can be a computed property.
Lat = p.Lat,
Lng = p.Lng,
ImageUrl = p.ImageUrl,
SeDeplace = p.SeDeplace, // Ok if a String/value.
ADomicile = p.ADomicile, // Ok if a String/value.
Notes = p.NoteClientPartenaires, // Ok if a String/value.
Prestations = p.PartenairePrestations.Select(y => y.Prestation.NomPrestation).ToList(); // Assuming this is retrieving the names of presentations. List<string>.
}).ToList();
return results;
प्रारंभिक .ToList() की आवश्यकता थी क्योंकि आप लिंक अभिव्यक्ति में मूल्यों (नाम पूर्ण) की गणना करने का प्रयास कर रहे थे जो आम तौर पर ईएफ को खिलाया जाता था जिसे आपका डीबी प्रदाता समझ नहीं पाएगा। दक्षता के लिए, केवल मैप किए गए गुणों का चयन करें, और इसके बजाय किसी भी गणना किए गए मान को अपने दृश्य मॉडल पर केवल-पढ़ने के लिए गुणों में बदलें। (PartenaireMapItem)
private string _nomComplet = null;
public string NomComplet
{
get { return _nomComplet ?? (_nomComplet = LastName.Substring(0,1).ToUpper() + ". " + FirstName); }
}
वह उदाहरण यह मानते हुए परिणाम को बफ़र करता है कि नाम विवरण केवल-पढ़ने के लिए हैं। यदि प्रथम/अंतिम नाम को अद्यतन किया जा सकता है, तो बस हर बार परिकलित नाम लौटाएं।
अन्य गुण ठीक होना चाहिए, यह मानते हुए कि SeDeclace/ADomicile स्ट्रिंग मान हैं और बाल संस्थाएं नहीं हैं। वही Prestations की सूची के लिए जाता है। Prestation नामों के लिए स्ट्रिंग्स की सूची ठीक होनी चाहिए।
मैंने जो अन्य मामूली परिवर्तन किया, वह था कि लौटने से पहले निरीक्षण करने के लिए एक चर में दृश्य मॉडल को पुनः प्राप्त करना। यह लौटने से पहले परिणामों का निरीक्षण करने के लिए ब्रेकपॉइंट का उपयोग करने में बेहतर सुविधा प्रदान करता है। यहां से निर्धारित करें कि परिणामों की गणना से कोई त्रुटि आ रही है, या कुछ और जैसे परिणामी दृश्य मॉडल को क्लाइंट को वापस क्रमबद्ध करना।