Как отлаживать EF Core 2 CurrentValues.SetValues - PullRequest
0 голосов
/ 21 февраля 2019

Я пытаюсь отладить, как ef core 2 обновляет сущность через CurrentValues.SetValues, вызов на обновление репо работает для большинства сущностей, но не для этой, и я не могу сказать, какое значение он пытаетсяconvert, потому что свойство, используемое для обновления, является датой-временемЗначение, используемое для обновления, также относится к дате и времени, var today = DateTime.UtcNow;

вызов репо

   public virtual async Task<T> UpdateAsync(T t, object key)
    {
        if (t == null)
            return null;
        T exist = await _context.Set<T>().FindAsync(key);
        if (exist != null)
        {
            _context.Entry(exist).CurrentValues.SetValues(t);
            await _context.SaveChangesAsync();
        }
        return exist;
    }

обновление вызова кода

   foreach (var detail in details)
   {
       detail.IsActive = isActive;
       detail.ModifiedDate = today;
       detail.ModifiedBy = currentUserId;

      await _repository.UpdateAsync(detail, detailId);

                //updates.Add(Task.Run(async () =>
                //{
                //    await _repository.UpdateAsync(detail, detailId);
                //}));
     }

     //prior attempt is using WaitAll but for debugging, the call
     // is made in the foreach loop
     // if (updates.Count > 0)
     //           Task.WaitAll(updates.ToArray());

Это столько же, сколько яможет найти, что EF генерирует, обновление sql:

  SET NOCOUNT ON;
  UPDATE [PaymentSyncDetails] SET [IsActive] = @p0, [ModifiedBy] = @p1,  [ModifiedDate] = @p2
  WHERE [PaymentSyncDetailID] = @p3;
  SELECT @@ROWCOUNT;

Мне нужно проверить параметры, в частности @ p2

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