c# - 如何调试 EF Core 2 CurrentValues.SetValues
问题描述
我正在尝试调试 ef core 2 如何通过CurrentValues.SetValues
调用 repo 更新实体更新适用于大多数实体,但不适用于这个实体,我不知道它试图转换的值是什么,因为该属性用于更新是日期时间。用于更新的值也是日期时间, 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
解决方案
推荐阅读
- batch-file - Windows 批处理脚本用它的第一行重命名 PDF 文件(循环可能)?
- databricks - 变量值必须传入 Databricks 直接 sql 查询而不是 spark.sql(""" """)
- javascript - 如何使 div 仅向下增长?
- multithreading - QSemaphore - 实现覆盖策略
- php - 通过复选框css + php更改标题的文本样式
- javascript - React Native:获取 PlatformColor 的值
- excel - Excel - 条件格式不起作用,因为单元格具有现有公式
- python - 将密集向量与 Tensorflow 中稀疏矩阵的每一行相乘
- flutter - flutter/dart 通过 mqtts 连接到 Azure
- javascript - JS - 数组数组