这是完整的信息: 获取LINQ to Entities无法识别方法'Double GetProximityInMiles(double,double)'方法,并且此方法无法转换为商店表达式。
以下是代码:
public Maid[] GetMaidsByZipCode(string Zip, int Distance)
{
MaidsListEntities Context = new MaidsListEntities();
return Context.Maids.Where(m => m.Zip == Zip && Distance <= GeoLocationProvider.Instance.GetProximityInMiles(Zip, m.Zip)).ToArray();
}
答案 0 :(得分:1)
您看到此错误,因为您的方法(GetProximityInMiles
)无法转换为SQL查询。您可以尝试在内存中执行该部分查询:
return Context.Maids.ToArray().Where(m => m.Zip == Zip && Distance <= GeoLocationProvider.Instance.GetProximityInMiles(Zip, m.Zip)).ToArray();
对ToArray的第一次调用实现了所有Maids。然后在内存中执行查询的其余部分。 请注意,如果表中的记录数太大,此方法可能会导致性能问题。