var robotNetworkData = await (
from ni in _dbContext.RobotNetworkInterfaces
join ns in _dbContext.RobotNetworkStatus
on ni.RobotSerialNumber equals ns.RobotSerialNumber into nsGroup
from ns in nsGroup.DefaultIfEmpty()
join ss in _dbContext.RobotSystemStatus
on ni.RobotSerialNumber equals ss.RobotSerialNumber into ssGroup
from ss in ssGroup.DefaultIfEmpty()
where ni.RobotSerialNumber == request.SerialNumber
group new { ni, nsGroup, ssGroup } by new { ni, ns, ss } into g
select new
{
RobotNetworkStatus = g.Key.ns,
RobotSystemStatus = g.Key.ss,
RobotNetworkInterfaces = g.Select(nd => nd.ni).ToList()
}
)
.AsNoTracking()
.ToListAsync();
var robotNetworkData = await (
from ni in _dbContext.RobotNetworkInterfaces
join ns in _dbContext.RobotNetworkStatus
on ni.RobotSerialNumber equals ns.RobotSerialNumber into nsGroup
from ns in nsGroup.DefaultIfEmpty()
join ss in _dbContext.RobotSystemStatus
on ni.RobotSerialNumber equals ss.RobotSerialNumber into ssGroup
from ss in ssGroup.DefaultIfEmpty()
where ni.RobotSerialNumber == request.SerialNumber
group new { ni, nsGroup, ssGroup } by new { ni, ns, ss } into g
select new
{
RobotNetworkStatus = g.Key.ns,
RobotSystemStatus = g.Key.ss,
RobotNetworkInterfaces = g.Select(nd => nd.ni).ToList()
}
)
.AsNoTracking()
.ToListAsync();