c# - “参数类型不匹配”
问题描述
知道是什么原因造成的吗?它给了我一个运行时间
分组后参数类型不匹配
尽管我从未将不可为空的值分配给可空字段。
这个错误实际上没有任何可读性。我发现的所有其他帖子都有某种可以为空的字段。
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; }
}
所有查询结果都分配给可为空的字段,我很困惑。
解决方案
我认为这可能与您声明某些项目应该是可为空的类型有关,试试这个:
FlagIniziata = (byte)peG...
应该改为FlagIniziata = (byte?)peG...
和
((double)peG.Sum(x => x.QtaLavorata)), //media pesata...
应该((double?)peG.Sum(x => x.QtaLavorata)), //media pesata
推荐阅读
- wordpress - WordPress - 使用预加载的古腾堡块创建新页面/文章
- apache-spark - Spark 控制台进度条丢失
- android - Android 11 JNI 禁用 fdsan
- git - How do i create a remote repository from a local repository in Git?
- php - 如何在 PHP 中从服务器使用本地网络共享 pos 打印机?
- arrays - C中的二进制搜索一直返回FALSE
- google-cloud-platform - 限制在 GCP 项目上创建虚拟机
- wordpress - 如何在我的电子商务网站上重置类别中的问题?
- bootstrap-4 - 当我点击菜单时如何显示下拉菜单
- gradle - 如何引用 gradle.properties 文件中的值