首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将这个SQL转换成ASP.NET MVC的LINQ?

如何将这个SQL转换成ASP.NET MVC的LINQ?
EN

Stack Overflow用户
提问于 2018-06-08 02:47:11
回答 1查看 72关注 0票数 -1

我有一条SQL语句:

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

我需要在提供List<>的EF代码中执行相同类型的查询。如下所示:

代码语言:javascript
复制
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();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-08 03:05:25

您的from子句中有列引用。在SQL中,顺序为(在此特定示例中)

  1. select
  2. from
  3. join
  4. order

在LINQ中,顺序是

  1. from
  2. join
  3. orderby
  4. select

您可以在查询语法中编写此代码

代码语言:javascript
复制
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();

或者使用扩展方法

代码语言:javascript
复制
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();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50748264

复制
相关文章

相似问题

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