Linq Errore “impossibile trovare un’implementazione del modello di query per tipo di fonte di Sistema.Linq.IQueryable’ Join Non Trovato”

Cosa diavolo significa questo? Ignorare il ritorno, e il ottenere, I risultati saranno appiattiti e bloccato in applicazione mem (quindi questo sarà un set… probabilmente)

“Impossibile trovare un’implementazione del modello di query per tipo di fonte di Sistema.Linq.IQueryable’. ‘Join’ non trovata. Considerare specificare in modo esplicito il tipo di intervallo variabile ‘a’.”

private CommonDataResponse toCommonData
        {
            get
            {
                CommonDataResponse toCommonData = this.gatewayReference.GetCommonData();
                Array dCountries = toCommonData.PropertyCountries.ToArray(); //Webservice sends KeyValuePairOfString
                Array dRegions = toCommonData.Regions; //Webservice sends Array
                Array dAreas = toCommonData.Areas; //Webservice sends Array

                    var commonRAR = from a in dAreas
                        join r in dRegions
                         on a.RegionID equals r.Id
                        join c in dCountries
                         on r.CountryCode equals c.Key
                        select new {c.Value, r.Name, a.Name, a.Id };



                    return toCommonData;
            }
        }

dRegions/dAreas Entrambe le matrici, dCountries è .toArray()

 

One Reply
  1. 3

    Array è un tipo sciolto, e non implementa IEnumerable<T> etc. Si potrebbe provare solo accendere il Array linee di var (consentire al compilatore di scegliere il tipo). Se si utilizza ancora Array, quindi forse .Cast<T>() specificare il tipo (o Array.ConvertAll, ecc).

    Da Array (senza ulteriori informazioni) tutti sa è object.

    Fondamentalmente, Join è definito come un metodo di estensione) su IEnumerable<T> e IQueryable<T> – non IEnumerable (senza <T>).

    • un.RegionID e r.Id tipo int r.CountryCode e c.Chiave di tipo stringa
    • dovrebbe essere stato RegionId non RegionID Oh, e cambiato le Matrici di Var ;o) Grazie

Lascia un commento