Давайте возьмем этот бит кода в качестве примера:
string aliSpReqs = String.Empty;
foreach (var item in dc.TaskRelations.Where(tableRaletions =>
tableRaletions.TaskId == taskID
&& tableRaletions.RelTypeId == 13))
{
aliSpReqs += item.RefAliSpReq.shortdesc + "; ";
}
return aliSpReqs.Substring(0, aliSpReqs.Length - 2);
Вы объединяете строки в цикле.Это плохая идея.Вместо этого попробуйте это (при условии .NET 4):
var query = c.TaskRelations.Where(r => r.TaskId == taskID
&& r.RelTypeId == 13))
.Select(r => r.RefAliSpReq.shortdesc);
return string.Join("; ", query);
В .NET 3.5 вам нужно использовать это вместо этого:
var query = c.TaskRelations.Where(r => r.TaskId == taskID
&& r.RelTypeId == 13))
.Select(r => r.RefAliSpReq.shortdesc);
return string.Join("; ", query.ToArray());
Правда, я не могу сказать, является ли это на самом деле что делает это медленным или нет - но это вполне может быть, если есть много строк.
Кстати, это ужасная идея:
catch
{
return String.Empty;
}
Поймайте определенные особые исключения вместо этого - или в большинстве случаев просто дайте исключению распространиться на вызывающую сторону.По крайней мере 1020 * вы должны зарегистрировать исключение, чтобы знать, что происходит не так.