Я пытаюсь отладить, как 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