如何将此 SQL 转换为 ASP.NET MVC 的 LINQ?
How to convert this SQL to LINQ of ASP.NET MVC?
我有这个SQL声明:
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
我需要在我的 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();
您的 from
子句中有列引用。在 SQL 中,顺序是(在此特定示例中)
- select
- 来自
- 加入
- 订购依据
在 LINQ 中,顺序是
- 来自
- 加入
- 排序方式
- select
你可以在查询语法中这样写
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();
我有这个SQL声明:
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
我需要在我的 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();
您的 from
子句中有列引用。在 SQL 中,顺序是(在此特定示例中)
- select
- 来自
- 加入
- 订购依据
在 LINQ 中,顺序是
- 来自
- 加入
- 排序方式
- select
你可以在查询语法中这样写
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();