我有这个代码
var list = _db.Projects.Where(item => item.Loc =="IN").Select(p => new {id=p.Id, title=p.Title,pc=p.PostalCode });
项目表有很多列,我需要动态查询所需的列并从数据库加载,而不是所有列连同数据。
问题:
- 如何为 linq select 编写 lambda 表达式?
- 如何通过选择特定的列、 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/