【问题标题】:How to update two columns in linq2db?如何更新 linq2db 中的两列?
【发布时间】:2021-06-17 02:00:50
【问题描述】:

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

Update teachers 
   set CandidateTotal= (Select count(1) from Candidates where TeacherId = 1)

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

【问题讨论】:

    标签: c# asp.net linq2db


    【解决方案1】:

    要更新多个列,您必须多次重复 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
    

    【讨论】:

      猜你喜欢
      • 2015-08-21
      • 2019-05-24
      • 1970-01-01
      • 2018-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-28
      相关资源
      最近更新 更多