Обновить. Перезаписать CurrentValues ​​LINQ to SQL очень медленно - PullRequest
0 голосов
/ 09 мая 2018

Я создал приложение на C # (.Net 4.0 framework). Открывающейся частью приложения является окно входа в систему, в котором пользователь должен ввести свои учетные данные, а после успешного входа в систему появляется другое окно с текстовым полем и под ним два списка.

Пользователь вводит число в текстовое поле и нажимает кнопку OK, после чего приложение ищет в этой базе данных базу данных SQL. Если он существует в базе данных, он заполняет список соответствующей информацией. Пользователь может выйти из системы, нажав кнопку в том же окне.

Теперь перейдем к основной части. В сети есть центральная база данных, расположенная на сервере MSSQL. Он содержит всю информацию из прошлых сессий и другого процесса (также от разных пользователей). Я использую следующий метод для обновления базы данных, чтобы очистить старые значения из последнего сеанса другого пользователя.

public void refreshDB()
{
 db.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, db.DB1);                
 db.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, db.User);
 db.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, db.DB2);                
 db.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, db.DB3);

 }
  1. db.DB1 имеет 200 строк
  2. db.User имеет 200 строк.
  3. db.DB2 имеет 10000 строк.
  4. db.DB3 имеет 10000 строк.

Обновление DB2 и DB3 занимает больше времени. И учитывая мои данные будут расти со временем. Боюсь, это займет больше времени.

Я пытался не обновлять базу данных. Тогда у меня все еще есть старые значения в форме из старого сеанса другого пользователя.

Могу ли я отказаться от этого метода и просто очистить значения в форме для каждого входа в систему? Или есть эффективный способ обновления базы данных без потери времени (в будущем база данных может вырасти до тысяч тысяч точек данных).

Любые предложения и идеи очень полезны.

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...