贝利信息

EF Core如何使用LINQ查询 EF Core LINQ查询入门教程

日期:2026-01-26 00:00 / 作者:月夜之吻
EF Core LINQ查询核心是强类型C#代码自动转SQL,支持方法语法和查询表达式语法,具备延迟执行、服务器端筛选排序分页投影、Join/Left Join、Contains转IN、原始SQL补充及AsNoTracking优化。

EF Core 使用 LINQ 查询的核心在于:用 C# 代码写强类型查询,由 EF Core 自动翻译成 SQL 发送到数据库执行。不需要手写 SQL,也不需要担心参数注入——只要写对 LINQ 表达式,EF Core 就能安全、高效地处理。

基础查询:获取数据的两种写法

EF Core 的 DbSet 实现了 IQueryable,所以支持链式调用和查询表

达式两种风格:

两者编译后生成的 SQL 完全一致,选哪种纯看团队习惯。但注意:所有查询在调用 ToList()First()Count() 等终结方法前,都只是构建表达式树,不会真正访问数据库——这就是延迟执行

常用操作:筛选、排序、分页、投影

这些是最常组合使用的操作,且多数能完整翻译为 SQL(即“服务器端执行”):

关联查询:Join 和 Left Join

EF Core 支持标准 LINQ Join,也支持更自然的导航属性访问(前提是模型配置了关系)。但显式 Join 更可控:

注意:Join 条件只支持简单相等比较;复杂条件(如 u.Id > r.MinUserId)会被拉到客户端执行,影响性能。

进阶技巧:In 查询、原始 SQL 补充

有些需求 LINQ 默认不直接支持,但有成熟解法:

基本上就这些。掌握 Where + OrderBy + Select + Skip/Take 这四类组合,再理解 Join 和 AsNoTracking 的适用时机,就能覆盖 90% 的日常查询需求。