【发布时间】:2018-07-18 13:44:08
【问题描述】:
知道是什么原因造成的吗? 它给了我一个运行时间
分组后参数类型不匹配
虽然我从不将不可为空的值分配给可空字段。
这个错误实际上没有任何可读性。 我发现的所有其他帖子都有某种可为空的字段。
IList<ProgrammazioneEseguite> parzialiGruppate =
(from pe in _db.ProgrammazioneEseguite.AsNoTracking()
orderby pe.DataOraInizioLavorazione
group pe by new { pe.Azienda, pe.ComNumero,
pe.ComParte, pe.ComPosizione, pe.FaseCiclo }
into peG
where peG.Sum(x => x.QtaLavorata) > 0
select new ProgrammazioneEseguite
{
Id = (int)peG.First().Id,
Azienda = peG.Key.Azienda,
ComNumero = peG.Key.ComNumero,
ComParte = peG.Key.ComParte,
ComPosizione = peG.Key.ComPosizione,
FaseCiclo = peG.Key.FaseCiclo,
CodDisegno = null,
CodSubDisegno = null,
RevSubDisegno = null,
FaseCicloSub = null,
HimpiegateCad =
peG.Sum(x => Util.callcolaHimpiegateCad(x.DataOraEsecuzione, x.DataOraInizioLavorazione, x.QtaLavorata) * x.QtaLavorata) / ((double)peG.Sum(x => x.QtaLavorata)), //media pesata per pezzi
HimpiegateCadTesto = null,
HimpiegateTot = null,
HimpiegateTotTesto = null,
FlagEseguita =
peG.First().FlagEseguita, //le setto tutte insieme a 1 quando son tutte chiuse
Operatore = null,
MacchinaUsata = peG.Last().MacchinaUsata,
DataFineLavEsterna = peG.First().DataFineLavEsterna,
DataEsecuzione = null,
DataOraEsecuzione = null,
QtaLavorata = peG.Sum(x => x.QtaLavorata),
DataOraInizioLavorazione = peG.Last().DataOraInizioLavorazione,
FlagIniziata = (byte)peG.Where(x => x.FlagIniziata > 0).FirstOrDefault().FlagIniziata,
ProgrDataOraForzata = null,
AnnotazioniOperatore = null,
ColataUtilizzata = null,
OperatoreFineFase = null,
FlagAttrezzaggio = null
}
).AsNoTracking().ToList();
这是模型
public partial class ProgrammazioneEseguite
{
public int Id { get; set; }
public string Azienda { get; set; }
public int? ComNumero { get; set; }
public string ComParte { get; set; }
public string ComPosizione { get; set; }
public double FaseCiclo { get; set; }
public int? CodDisegno { get; set; }
public int? CodSubDisegno { get; set; }
public string RevSubDisegno { get; set; }
public double? FaseCicloSub { get; set; }
public double? HimpiegateCad { get; set; }
public string HimpiegateCadTesto { get; set; }
public double? HimpiegateTot { get; set; }
public string HimpiegateTotTesto { get; set; }
public byte? FlagEseguita { get; set; }
public string Operatore { get; set; }
public string MacchinaUsata { get; set; }
public DateTime? DataFineLavEsterna { get; set; }
public DateTime? DataEsecuzione { get; set; }
public DateTime? DataOraEsecuzione { get; set; }
public int? QtaLavorata { get; set; }
public DateTime? DataOraInizioLavorazione { get; set; }
public byte? FlagIniziata { get; set; }
public DateTime? ProgrDataOraForzata { get; set; }
public string AnnotazioniOperatore { get; set; }
public string ColataUtilizzata { get; set; }
public string OperatoreFineFase { get; set; }
public byte? FlagAttrezzaggio { get; set; }
}
所有查询结果都分配给可空字段,我很困惑。
【问题讨论】:
-
@ViRuSTriNiTy 不是我的错,它的办公室惯例。我也不认为这种情况很重要,它只是一个查询,其中包含一些您可以从模型中看到的类型的字段
-
FlagIniziata = (byte)peG.Where(x...).FirstOrDefault().FlagIniziata应该是FlagIniziata = peG.Where(x...).FirstOrDefault()?.FlagIniziata,对吧? -
请发布带有堆栈跟踪的完整异常消息。
-
代码部分缩进修复。
标签: c# linq asp.net-core asp.net-core-mvc