首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在linq2db中更新两列?

如何在linq2db中更新两列?
EN

Stack Overflow用户
提问于 2021-06-17 10:00:51
回答 1查看 113关注 0票数 1

如何在没有get情况下更新Linq2db中的两列。示例:在sql server命令中

代码语言:javascript
运行
复制
Update teachers 
   set CandidateTotal= (Select count(1) from Candidates where TeacherId = 1)

如何转换为LINQ2DB查询?不要使用SQL命令。

EN

回答 1

Stack Overflow用户

发布于 2021-06-17 12:47:28

要更新多个列,您必须多次重复Set运算符:

代码语言:javascript
运行
复制
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:

代码语言:javascript
运行
复制
UPDATE
    [Teacher]
SET
    [CandidateTotal] = (
        SELECT
            Count(*)
        FROM
            [Candidate] [c_1]
        WHERE
            [c_1].[TeacherId] = [Teacher].[Id]
    ),
    [IsUpToDate] = 1
WHERE
    [Teacher].[Id] = 1
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68011949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档