Свойство BindingSource дает мне время ожидания истекло. Как я могу найти, где находится конфликтующее свойство? - PullRequest
0 голосов
/ 05 марта 2020

Я не понимаю, почему в моей системе истекло время ожидания выполнения, и моя цель - найти блок кода, который дает мне исключение для его оптимизации. Когда я отлаживаю, он приходит к этой строке: this.claimsBS.DataSource; и затем я получаю это исключение (см. Описание изображения). снимок окна исключений . Я хочу оптимизировать мой код, у меня есть несколько таблиц БД, заблокированных предложением TABLOCKX, и я хочу спроектировать свое решение так, чтобы оно исключалось, даже если таблицы заблокированы из-за большого количества обращений к БД и так много пользователей, которым моя система дает ответы с мои хранимые процедуры с использованием (с (nolock)) предложения.

Я уже установил точку останова отладки при каждом использовании моего свойства Persons, которое выбрасывает исключение, и никогда не останавливает точку останова перед выполнением конфликтующей строки.

Это стек вызовов

 /// <summary>Gets or sets the Persons relation property.</summary>
[RelationProperty("Persons_Claims", 
QueryDirection.ParentQuery)]
[BeforeSetValue]
    [AfterSetValue]
public virtual Persons Persons {
  get { 
    Persons result_;
    if (GetInterceptor<Persons>("Persons", GetPersonsImpl, out result_)) return result_;
    return GetPersonsImpl();
  }
  set { 
    if (BeforeSetValue("Persons", value)) {
      if (!SetInterceptor<Persons>("Persons", value, SetPersonsImpl)) {
                  SetPersonsImpl(value);
      }
                AfterSetValue("Persons");
        }
  }
}
private Persons GetPersonsImpl() {
  return GetParent<Persons>(EntityRelations.Persons_Claims, this.PersistenceManager.DefaultQueryStrategy); //Conflicting Line
}
private void SetPersonsImpl(Persons value) {
  if (value == null) {
    SetNull(this.InsuredPersonColumn);
  } else {
    SetColumnValue(this.InsuredPersonColumn, value, value.PersonIdColumn);
  }
  OnPropertyChanged(new PropertyChangedEventArgs("Persons"));
}

Заявки на доступ уже исправлены. Доступ людей - это тот, который я не выдерживаю с мячом.

...