我的问题是什么
本文关键字:是什么 问题是 问题 我的 | 更新日期: 2023-09-27 18:19:27
我有一个实体框架查询,我想将其更改为Linq,我的问题是:
(from l in db.PageLayouts
where l.ZoneName == zone.Name
join p in db.PageLayouts
on l.PageId equals p.PageId
where p.ZoneName == PageName
orderby l.AppearanceOrder
select l).ToList();
有人帮我把它改一下吗?
您的查询已经是Linq了。我猜在这里,但我认为你想把它改成流利的(或"方法语法"),如果是这样,这里是直接翻译:
db.PageLayouts.Where(x => x.ZoneName == zone.Name)
.Join(db.PageLayouts,
l => l.PageId,
p => p.PageId,
(l,p) => new { l,p })
.Where(z => x.p.ZoneName == PageName)
.OrderBy(x => x.l.AppearanceOrder)
.Select(x => x.l)
.ToList();
我认为您的联接没有多大意义,但我只是将语法从linq改为fluent。
PS:这个答案制作得很快,没有想太多,小心处理
我们在LINQ中有查询语法和方法语法。
//Query syntax:
IEnumerable<int> numQuery1 =
from num in numbers
where num % 2 == 0
orderby num
select num;
//Method syntax:
IEnumerable<int> numQuery2 = numbers.Where(num => num % 2 == 0).OrderBy(n => n);
入门语言集成查询(LINQ)中的大多数查询文档是使用LINQ声明性查询语法编写的。但是,必须将查询语法转换为编译代码时使用.NET公共语言运行库(CLR)。这些方法调用调用具有名称的标准查询运算符例如Where、Select、GroupBy、Join、Max和Average。你可以打电话它们直接使用方法语法而不是查询语法。