【发布时间】:2014-04-11 02:13:25
【问题描述】:
我目前有一个运行良好的 LINQ 查询,但我想知道如何将其转换为 LINQ fluent API 格式。我曾尝试在 Google 上搜索关于 fluent API 的体面教程,以尝试自己学习,但似乎没有。
这是我要转换的查询:
from s in db.Sections
join f in db.Files
on s.LogoFileID equals f.ID into s_f
where s.RouteName == SectionRoute
from x in s_f.DefaultIfEmpty()
select new GameSectionVM
{
SectionID = s.ID,
GameTitle = s.Title,
LogoFileName = x.FileName,
Synopsis = s.Synopsi
}).Single();
【问题讨论】:
-
每次操作一项。查看连接查询的文档和示例,并查看相应方法的文档。在一个方法调用中加入数据。完成后,过滤掉符合过滤条件的行。继续为您拥有的每个操作执行此操作。
-
我知道如何选择和在哪里,但我无法在连接中找到任何我能理解的东西。就像我在 OP 中所说的那样,我搜索了教程但没有找到任何东西。
-
首先,与其寻找关于将查询语法转换为方法语法的教程,不如寻找如何连接两个查询。有 很多 教程向您展示如何做到这一点。即使没有,也只需要查看MSDN中LINQ方法的文档,看看有哪些操作,它们做了什么,如何调用它们,包括很多例子。此外,如果有些部分你确实知道该怎么做,那么不要问如何去做。询问您不知道如何做的事情,而不是在您已经完成 75% 的事情时要求我们做所有事情。
-
Resharper 可以为你做到这一点,外连接等同于 LINQ 方法语法中的 GroupJoin
-
@Servy 我正在寻找关于流利 API 的一般教程,而不是关于转换的东西。我发现的大多数东西不是关于 fluent API 而是使用我显示的代码方法。