Как обновить несколько строк на сервере SQL за один раз, не используя временную таблицу? - PullRequest
0 голосов
/ 13 мая 2019

Мое приложение имеет один объект под названием Клиент.У клиента есть свойство под названием status.Я хочу обновить статус нескольких клиентов на основе ввода пользователя.

Код:

public async Task UpdateStatus(List<ClientModel> clients, string modifyUserId)
    {
        var clientsToUpdate = clients.Select(x => new ClientViewModel { Id = x.Id, Status = x.StatusCd, ModifyDt = DateTime.UtcNow, MdfyUserId =  modifyUserId != null ? modifyUserId : string.Empty});
        var parameters = new List<IDbDataParameter>();
        foreach (var client in clientsToUpdate)
        {
           parameters.Add(dbManager.CreateParameter("@ClientId", 4, client.Id, DbType.Int32, ParameterDirection.InputOutput));
           parameters.Add(dbManager.CreateParameter("@ModifyDt", client.ModifyDt, DbType.DateTime));
           parameters.Add(dbManager.CreateParameter("@ModifyUserId", client.MdfyUserId, DbType.Int32));
           await dbManager.ExecuteNonQuery(Constants.StoredProcedures.UpdateClientStatus, CommandType.StoredProcedure, parameters.ToArray());
           parameters.Clear();
        }
    }

Здесь, в приведенном выше коде, вызов идет в базу данных для каждого клиента, которого я хочу улучшить.Есть ли способ обновить статус нескольких клиентов за один раз?

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