Linq d'Erreur "impossible de trouver une mise en œuvre du modèle de requête pour le type de source de "Système".Linq.IQueryable "Rejoindre Non Trouvé"
Ce que l'enfer est-ce à dire? Ignorer le retour, et l'obtenir, Les résultats seront aplatis et coincé dans l'application mem (ce sera donc un ensemble... probablement)
"Impossible de trouver une mise en œuvre du modèle de requête pour le type de source de "Système".Linq.IQueryable'. "Rejoindre" pas trouvé. Envisager de spécifier explicitement le type de la plage de la variable '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 les Deux tableaux, dCountries est .toArray()
Vous devez vous connecter pour publier un commentaire.
Array
est une très lâche de type, et de ne pas mettre en œuvreIEnumerable<T>
etc. Vous pouvez essayer juste de commutation de laArray
lignes devar
(permet au compilateur de choisir le type). Si il utilise toujoursArray
, alors peut-être utiliser.Cast<T>()
pour spécifier le type (ouArray.ConvertAll
, etc).De
Array
(sans plus d'informations) tous il saitobject
.Fondamentalement,
Join
est défini comme une méthode d'extension) surIEnumerable<T>
etIQueryable<T>
- pasIEnumerable
(sans le<T>
).