如何在没有get情况下更新Linq2db中的两列。示例:在sql server命令中
Update teachers
set CandidateTotal= (Select count(1) from Candidates where TeacherId = 1)
如何转换为LINQ2DB查询?不要使用SQL命令。
发布于 2021-06-17 12:47:28
要更新多个列,您必须多次重复Set
运算符:
db.GetTable<Teacher>()
.Where(t => t.Id == 1)
.Set(t => t.CandidateTotal, t => db.GetTable<Candidate>().Where(c => c.TeacherId == t.Id).Count())
.Set(t => t.IsUpToDate, t => true)
.Update();
它生成以下SQL:
UPDATE
[Teacher]
SET
[CandidateTotal] = (
SELECT
Count(*)
FROM
[Candidate] [c_1]
WHERE
[c_1].[TeacherId] = [Teacher].[Id]
),
[IsUpToDate] = 1
WHERE
[Teacher].[Id] = 1
https://stackoverflow.com/questions/68011949
复制相似问题