【发布时间】:2021-06-17 02:00:50
【问题描述】:
如何在没有获取的情况下更新 Linq2db 中的两列。 示例:在 sql server 命令中
Update teachers
set CandidateTotal= (Select count(1) from Candidates where TeacherId = 1)
如何转换为 LINQ2DB 查询? 不要使用 SQL 命令。
【问题讨论】:
如何在没有获取的情况下更新 Linq2db 中的两列。 示例:在 sql server 命令中
Update teachers
set CandidateTotal= (Select count(1) from Candidates where TeacherId = 1)
如何转换为 LINQ2DB 查询? 不要使用 SQL 命令。
【问题讨论】:
要更新多个列,您必须多次重复 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
【讨论】: