Не загружайте всю таблицу в память:
var query = db.Schools.ToList();
txtScCount.Text = query.Count().ToString();
Если все, что вам нужно, это количество записей, то просто получите количество записей:
txtScCount.Text = db.Schools.Count().ToString();
Позвольте Entity Framework помочь вам оптимизировать ваши запросы данных к ядру базы данных.Механизмы баз данных действительно хороши в оптимизации путей выполнения запросов.Не просто загружайте всю свою базу данных в массивы в памяти и пытайтесь оптимизировать себя.
Кроме того, код, который вы показываете, действительно не имеет тяжелых операций.Удостоверьтесь, что вы конкретно подтверждаете, где / где находится ваше фактическое узкое место.Я бы смущался предположить, что это из жалких 500 КБ данных.В масштабе больших объемов данных 500 КБ данных неотличимы от данных.
Примечание: Вы , вероятно, не должны этого делать:
catch (Exception)
{
}
Что говорит код: "если вообще когда-либо возникнет ошибка, я не хочузнать об этом. "Поэтому, если вы когда-нибудь пытаетесь найти ошибку или странную ошибку, просто помните, что вы специально указали коду не сообщать вам, если что-то пойдет не так:)
Как минимум, запишите исключение впеременная и войдите где-нибудь.Или вообще не перехватывайте исключение и не позволяйте ему подниматься в стеке до чего-то другого, что может существенно его перехватить и обработать.