这到底意味着什么?忽略返回,获取,结果将被压平并卡在应用程序内存中(因此这将是一个集合......可能)
“无法找到源类型'System.Linq.IQueryable'的查询模式的实现。'未找到'Join'。请考虑明确指定范围变量'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两个数组,dCountries是.toArray()
答案 0 :(得分:3)
Array
是一种非常宽松的类型,并没有实现IEnumerable<T>
等。您可以尝试将Array
行切换为var
(让编译器选择类型)。如果它仍然使用Array
,则可能使用.Cast<T>()
来指定类型(或Array.ConvertAll
等)。
从Array
(没有更多信息),它所知道的只是object
。
基本上,Join
在IEnumerable<T>
和IQueryable<T>
上定义(作为扩展方法) - 而不是IEnumerable
(没有<T>
)。