【发布时间】:2021-02-12 04:52:13
【问题描述】:
我的 UnitOfWork 存储库中有一个更新方法,如下所示:
public async Task<int> UpdateAsync(Expression<Func<T, bool>> predicate, Expression<Func<T, T>> updateExpression)
{
return await dbSet.Where(predicate).UpdateAsync(updateExpression);
}
我的逻辑中也有一个更新方法,如下所示: 其中 BetSelection 有一个选择 ID 作为外键。
private async Task UpdateBetSelections(Table table)
{
await _unitOfWork.BetSelection
.UpdateAsync(bs => bs.Selection.TableId == table.Id && bs.Selection.RoundId == table.CurrentRound,
bs => new BetSelection()
{
Status = bs.Selection.Status
});
}
我正在尝试将一轮的所有 BetSelection 记录状态更新为其相应选择状态的状态。查询没有抛出任何错误,也没有更新记录。
【问题讨论】:
-
不熟悉这个扩展。但是您要尝试将状态更新为相同的状态吗?
-
@SvyatoslavDanyliv 是的,我正在尝试将 BetSelection 记录的状态更新为选择记录的状态,其中该选择是 BetSelection 的模型
-
哦,它是一个导航属性...错过了。我认为这个扩展不能处理导航属性。如果你没有自己的 LINQ 翻译器,那就很难了。我不得不为此提出更好的扩展:github.com/linq2db/linq2db.EntityFrameworkCore
标签: c# sql database asp.net-core entity-framework-core