У меня есть таблица SQL с примерно 380 000 строк.
В SQL SMSS я выполняю этот запрос:
SELECT Longitude, Latitude, street FROM [Stops].[dbo].[Members]
WHERE ABS(Latitude - 51.463419) < 0.005 AND ABS(Longitude - 0.099) < 0.005
Он возвращает около 20 результатов почти мгновенно.
У меня есть веб-служба WCF для предоставления моих данных приложению Windows Phone:
public class Service1 : IService1
{
double curLatitude = 51.463;
double curLongitude = 0.099;
public List<Member> GetMembers()
{
DataClassesDataContext db = new DataClassesDataContext();
var members = from member in db.Members
where (Convert.ToDouble(member.Latitude) - curLatitude) < 0.005 && (Convert.ToDouble(member.Longitude) - curLongitude) < 0.005
select member;
return members.ToList();
}
}
Я полагаю, что он выполняет тот же запрос, но также добавляет элементы в список.
Проблемав том, что это занимает 7+ минут, тогда я получаю какое-то странное исключение, поэтому никогда не завершается.Тестер службы WCF в VS2010 просто заполняется памятью и использует много ЦП при выполнении этого.Мне кажется, что ToList делает что-то странное?