为了账号安全,请及时绑定邮箱和手机立即绑定

如何将此 SQL 转换为 ASP.NET MVC 的 LINQ?

如何将此 SQL 转换为 ASP.NET MVC 的 LINQ?

C#
弑天下 2021-07-28 09:10:22
我有这个 SQL 语句:select     table1.DIRECTORATE_ID,     table2.PLA_NAME + '//' + table1.ENGLISH_DIRECTORATE_CODE as EngCodefrom table1inner join table2 on table1.PLA_ID = table2.PLA_ID order by EngCode我需要在我的 EF 代码中执行相同类型的查询,这会给我一个List<>. 像这样的东西:var query = (from t1 table1.DIRECTORATE_ID, table2.PLA_NAME + '//' + table1.ENGLISH_DIRECTORATE_CODE as EngCode             from table1             inner join table2 on table1.PLA_ID = table2.PLA_ID order by EngCode)            .ToList();
查看完整描述

1 回答

?
MMTTMM

TA贡献1869条经验 获得超4个赞

您的from子句中有列引用。在 SQL 中,顺序是(在这个特定的例子中)

  1. 选择

  2. 加入

  3. 订购

在LINQ中,顺序是

  1. 加入

  2. 订购单

  3. 选择

您可以在查询语法中编写此内容

var query = from t1 in table1

            join t2 in table2 on t1.PLA_ID equals t2.PLA_ID

            let EngCode = t2.PLA_NAME + "//" + t1.ENGLISH_DIRECTORATE_CODE

            orderby EngCode

            select new 

            { 

                t1.DIRECTORATE_ID, 

                EngCode

            }


var data = query.ToList();

或者使用扩展方法


var data = table1

    .Join(

        table2,

        t1 => t1.PLA_ID,

        t2 => t2.PLA_ID,

        (t1, t2) => new 

        { 

            t1.DIRECTORATE_ID, 

            EngCode = t2.PLA_NAME + "//" + t1.ENGLISH_DIRECTORATE_CODE 

        })

    .OrderBy(x => x.EngCode)

    .ToList();


查看完整回答
反对 回复 2021-07-31
  • 1 回答
  • 0 关注
  • 144 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信