У меня есть веб-приложение с моделью EF, которое я изначально проектировал с использованием бэкэнда SQL Server 2008. Позже я решил использовать SQL CE для переносимости, поэтому я преобразовал модель в Sql CE 4.0. Тем не менее, я столкнулся с серьезными проблемами производительности при запуске этого приложения.
Например, у меня есть часть кода, которая извлекает сущность из базы данных:
Trace.Write("Retrieving node from database", "Application");
var name = value.ToString();
var node = DataContext.Entities.Nodes
.SingleOrDefault(n => n.Name == name);
Trace.Write("Node retrieved from database ", "Application");
Когда я просматриваю информацию трассировки (trace.axd), эти строки кода занимают цикл 0,6 секунды !!
Информация о трассировке
Category Message From First(s) From Last(s)
Application Retrieving node from database 0.00057591118424269 0.000576
Application Node retrieved from database 0.595122564460008 0.594547
И это происходит везде в моем приложении, где я запрашиваю по имени.
Есть идеи? Я предполагаю, что мне нужно определить индекс для столбца, но как мне это сделать в модели EF?
РЕДАКТИРОВАТЬ: Грамматика
РЕДАКТИРОВАТЬ 2: Правописание в заголовке