2011-08-13 78 views
0

以下是完整信息: 将LINQ to Entities获取方法'Double GetProProimityInMiles(double,double)'方法不能识别,并且此方法不能转换为商店表达式。获取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

您看到这个错误,因为你的方法(GetProximityInMiles)再也翻译成一个SQL查询。您可以尝试在内存中执行查询的那部分内容:

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

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

相关问题