linq - LINQ 选择项的 Lambda 表达式

标签 linq entity-framework lambda linq-to-entities

我有这个代码

var list = _db.Projects.Where(item => item.Loc =="IN").Select(p => new {id=p.Id, title=p.Title,pc=p.PostalCode });

项目表有很多列,我需要动态查询所需的列并从数据库加载,而不是所有列连同数据。

问题:

  1. 如何为 linq select 编写 lambda 表达式?
  2. 如何通过选择特定的列、 Entity Framework 来减少对数据库的数据读取?

最佳答案

查看 C# 编译器生成的表达式并尝试复制它的作用:

Expression<Func<Project, object>> lambda =
    (Project p) => (object)new {id=p.Id, title=p.Title,pc=p.PostalCode };

我希望这段代码可以编译。如果没有,您肯定能够修复它。之后,查看 lambda 变量的内容。

请注意,转换为 object 只是为了进行编译。你不需要/不想要那是生产。

关于linq - LINQ 选择项的 Lambda 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14121656/

相关文章:

c# - 使用Web Api服务进行多次调用

c# - Entity Framework Include 和 Select 正在获取其他一些实体

c# - Linux : Any particular way thats better than others when seeding data with EF Core? 上的 Dotnet 核心 1.1

C++:从外部更改在 lambda 中捕获的变量

c# - 如何有条件地应用 Linq 运算符?

c# - 是什么导致 C# 中过多的匿名方法闭包 (c__DisplayClass1)?

.net - 使用编译查询时我们还需要存储过程吗?

用于获取函数参数数量的 C++ 模板机制,适用于 lambda 和普通函数

c++ - 如何调用存储在指向 `std::function`的指针中的lambda?

c# - Linq2SQL生成的奇怪SQL