Anda mungkin perlu men-debug API dan menentukan lebih banyak detail untuk membantu mempersempit penyebabnya. Beberapa hal yang dapat saya lihat:
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() awal diperlukan karena Anda mencoba menghitung nilai (NameComplet) dalam ekspresi Linq yang biasanya diumpankan ke EF yang tidak akan dipahami oleh penyedia DB Anda. Untuk efisiensi, hanya pilih properti yang dipetakan, dan sebagai gantinya ubah nilai yang dihitung menjadi properti hanya-baca pada model tampilan Anda. (PartenaireMapItem)
private string _nomComplet = null;
public string NomComplet
{
get { return _nomComplet ?? (_nomComplet = LastName.Substring(0,1).ToUpper() + ". " + FirstName); }
}
Contoh itu menyangga hasil dengan asumsi bahwa detail nama hanya-baca. Jika Nama Depan/Belakang dapat diperbarui, cukup kembalikan nama yang dihitung setiap kali.
Properti lainnya harus baik-baik saja, dengan asumsi bahwa SeDeclace/ADomicile adalah nilai string dan bukan entitas anak. Hal yang sama berlaku untuk daftar Prestations. Daftar string untuk nama Prestation seharusnya baik-baik saja.
Perubahan kecil lainnya yang saya buat adalah mengambil model tampilan dalam variabel untuk diperiksa sebelum kembali. Ini lebih memudahkan penggunaan breakpoint untuk memeriksa hasil sebelum kembali. Dari sini, tentukan apakah ada kesalahan yang muncul dari penghitungan hasil, atau hal lain seperti membuat serial model tampilan yang dihasilkan kembali ke klien.