Как говорит Джастин, вы получили Take
не в том месте. Это все равно что сказать «Найти первые 25 слов в словаре, а затем отфильтровать все, что не начинается с B.» Это не то, как вы находите первые 25 слов, начинающихся с B. Возможно, вы просто хотите:
using (DataClasses1DataContext db = new DataClasses1DataContext())
{
var members =
from member in db.Stops_edited_smalls
where Math.Abs(Convert.ToDouble(member.Latitude) - curLatitude) < 0.05
&& Math.Abs(Convert.ToDouble(member.Longitude) - curLongitude) < 0.05
select member;
return members.Take(25).ToList();
}
Я предпочитаю помещать Take
вызов отдельно в выражение запроса, просто для удобства чтения. Однако любой из них будет работать, и этот действительно выполняет «только первые 25 значений» в базе данных, а не локально.
Учитывая, что вам нужны только «первые» 25 строк, вам, вероятно, следует указать порядок, например,
var members =
from member in db.Stops_edited_smalls
where Math.Abs(Convert.ToDouble(member.Latitude) - curLatitude) < 0.05
&& Math.Abs(Convert.ToDouble(member.Longitude) - curLongitude) < 0.05
orderby member.Latitude
select member;
... кроме использования того свойства, которое вы действительно хотите заказать.