2011-08-13 105 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的第一次調用實現了所有女傭。然後查詢的其餘部分在內存中執行。 請注意,如果表中的記錄數過大,則此方法可能會導致性能問題。

相關問題