C#LINQ GroupBy error在选择列表中只能指定一个表达式
我有一个Linq查询,我将它按3个字段分组,它返回结果,我想根据键获取分组集合的字段,但当我使用下面的查询时,它会给我错误信息 “当子查询未引入EXISTS时,只能在选择列表中指定一个表达式。” 下面是我的问题C#LINQ GroupBy error在选择列表中只能指定一个表达式,c#,linq,C#,Linq,我有一个Linq查询,我将它按3个字段分组,它返回结果,我想根据键获取分组集合的字段,但当我使用下面的查询时,它会给我错误信息 “当子查询未引入EXISTS时,只能在选择列表中指定一个表达式。” 下面是我的问题 var patientResults = context.GetTable<PatientResult>(). Where(r => r.MeasurementTime < filterVal
var patientResults = context.GetTable<PatientResult>().
Where(r =>
r.MeasurementTime < filterValues.DateTo.AddDays(1).Date
&& r.MeasurementTime >= filterValues.DateFrom
&& devicesFilter.Contains(r.DeviceId)).
GroupBy(x => new { x.MeasurementTime, x.Model, x.DeviceId });
var patientResults12 =patientResults.Select(x => new PatientMeasurementResult()
{
MeasurementTime = x.Key.MeasurementTime,
Model = x.Key.Model,
DeviceId = x.Key.DeviceId,
PatientId = x.FirstOrDefault().PatientId,
PatientName = x.FirstOrDefault().PatientName
});
var patientResults=context.GetTable()。
其中(r=>
r、 度量时间=filterValues.DateFrom
&&DeviceFilter.Contains(r.DeviceId))。
GroupBy(x=>new{x.MeasurementTime,x.Model,x.DeviceId});
var patientResults12=patientResults.Select(x=>new PatientMeasureResult())
{
MeasurementTime=x.Key.MeasurementTime,
Model=x.Key.Model,
DeviceId=x.Key.DeviceId,
PatientId=x.FirstOrDefault().PatientId,
PatientName=x.FirstOrDefault().PatientName
});
我想要两个元素PatientId和PatientName,我不想在groupby中包含它们
如果我只为PatientId或PatientName指定FirstOrDefault(),效果很好,但当我同时为这两个指定时,会出现上述错误。只需调用FirstOrDefault()一次,如下所示:
var patientResults12 = patientResults.Select(x =>
{
var patientMeasurementResult = new PatientMeasurementResult()
{
MeasurementTime = x.Key.MeasurementTime,
Model = x.Key.Model,
DeviceId = x.Key.DeviceId,
};
var result = x.FirstOrDefault();
if (result != null)
{
patientMeasurementResult.PatientId = result.PatientId;
patientMeasurementResult.PatientName = result.PatientName;
}
return patientMeasurementResult;
});
你为什么在x上做FirstOrDefault。为什么不能执行x.Key.Patientid和x.Key.Patientname?Patientid和Patientname是非关键元素,因此不能在group by中使用它们,因此它们不能是键,也不能用作x.Key.Patientid,重要的是它们可以为空PatientResult类的结构是什么。