获取LINQ to Entities无法识别方法'Double GetProximityInMiles(double,double)'...

时间:2011-08-13 17:33:22

标签: linq-to-entities

这是完整的信息: 获取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();
    }

1 个答案:

答案 0 :(得分:1)

您看到此错误,因为您的方法(GetProximityInMiles)无法转换为SQL查询。您可以尝试在内存中执行该部分查询:

return Context.Maids.ToArray().Where(m => m.Zip == Zip && Distance <= GeoLocationProvider.Instance.GetProximityInMiles(Zip, m.Zip)).ToArray();

对ToArray的第一次调用实现了所有Maids。然后在内存中执行查询的其余部分。 请注意,如果表中的记录数太大,此方法可能会导致性能问题。