【发布时间】:2023-03-26 11:23:01
【问题描述】:
我有一个 linq 查询,用于使用 2 个连接从 3 个表中获取数据。我更愿意把它写成 lambda 表达式,这样我的团队会发现它更具可读性。有没有办法做到这一点?我找不到任何像样的例子。
var q = (
from sus in susManager.Get()
join su in suManager.Get() on sus.SUId equals su.Id
join p in pManager.Get() on su.PId equals p.Id
where sus.EndTimeStamp >= oneDayAgo
select new
{
Name = p.FirstName + " " + p.LastName,
Email = su.Email,
LastLogIn = sus.StartTimeStamp,
LastSessionDurationInMinutes =
DbFunctions.DiffMinutes(sus.StartTimeStamp, sus.EndTimeStamp),
LastActive = sus.EndTimeStamp
}).ToList();
【问题讨论】:
-
Lambda 表达式在任何客观标准下都不具有更高的可读性。查询语法也被称为“理解语法”是有原因的。
-
@GertArnold 我只是遵循公司的风格指南。
-
这样的风格指南是无稽之谈。没有人可以强迫开发人员放弃可读代码。
标签: c# entity-framework linq lambda webforms