我正在使用以下代码编译没有问题但我在调用方法时收到此错误:
LINQ to Entities无法识别方法'System.String ToString()'方法,并且此方法无法转换为商店表达式。
public IEnumerable<string> GetAllCitiesOfCountry(int id)
{
var ad = from a in entities.Addresses
where a.CountryID == id
select a.City.Distinct().ToString();
var fa = from b in entities.FacilityAddresses
where b.CountryID == id
select b.City.Distinct().ToString();
return ad.Concat(fa).Distinct();
}
为了工作怎么能重写?
答案 0 :(得分:4)
更新 - 我认为这就是你要找的东西
public IEnumerable<string> GetAllCitiesOfCountry(int id)
{
var ad = from a in entities.Addresses
where a.CountryID == id
select a.City;
var fa = from b in entities.FacilityAddresses
where b.CountryID == id
select b.City;
return ad.Union(fa).Distinct();
}
答案 1 :(得分:3)
City
是什么类型的?如果它已经是一个字符串,只需删除.Distinct().ToString()
个电话。如果是复杂类型,请从类型中选择城市名称。
更新:根据您的评论,您应该删除Distint()和ToString()调用。关于城市名称集合的最终联盟应该为您提供独特的城市名称。
public IEnumerable<string> GetAllCitiesOfCountry(int id)
{
var ad = from a in entities.Addresses
where a.CountryID == id
select a.City;
var fa = from b in entities.FacilityAddresses
where b.CountryID == id
select b.City;
return ad.Union(fa);
}