The JIT compiler encountered invalid IL code or an internal. 返回

SqlSugar 处理完成
16 115
该叫什么 发布于2周前
悬赏:0 飞吻

System.InvalidProgramException: The JIT compiler encountered invalid IL code or an internal limitation.
   at SqlSugarEntity(IDataRecord)
   at SqlSugar.IDataReaderEntityBuilder`1.Build(IDataRecord dataRecord)
   at SqlSugar.DbBindAccessory.GetEntityList[T](SqlSugarProvider context, IDataReader dataReader)
   at SqlSugar.DbBindProvider.DataReaderToList[T](Type type, IDataReader dataReader)
   at SqlSugar.QueryableProvider`1.GetData[TResult](Boolean isComplexModel, Type entityType, IDataReader dataReader)
   at SqlSugar.QueryableProvider`1.GetData[TResult](KeyValuePair`2 sqlObj)
   at SqlSugar.QueryableProvider`1._ToList[TResult]()
   at SqlSugar.QueryableProvider`1.ToList()
   at SqlSugar.SimpleClient`1.GetList(Expression`1 whereExpression)
   at JYT.Platform.Equipment.Infrastructure.BaseRepository`1.Query(Expression`1 func)
   at JYT.Platform.Equipment.Application.Services.EquipmentService.GetEquipmentList(KeywordCondition ACondition)


中文提示 : Select 实体与表映射出错,可以注释实体类中的字段排查具体哪一个字段。【注意:如果用CodeFirt先配置禁止删列或更新】 The JIT compiler encountered invalid IL code or an internal limitation.


本地测试都没问题,发布到docker中就报这个错,本地和服务器连的是同一个数据库服务.

热忱回答16

  • 暂时看不出问题

    0 回复
  • 这个像程序报错了,你清空后重新发布试试

    0 回复
  • 龍 VIP0
    2周前

    访问数据库的底层都是一样的。换个表查询接口就正常,只有调用某一张表的api查询数据的时候就出现这样的问题

    0 回复
  • @龍:那应哪一个字段类型有问题

    0 回复
  • [SugarColumn(SqlParameterDbType=typeof(CommonPropertyConvert))]//CommonPropertyConvertORM自带的 
    public DateTime DcValue { getset; }//5.1.4.62版本支持

    给这个表的字段全部加上CommonPropertyConvert

    0 回复
  • 龍 VIP0
    2周前

    @fate sta:加上[SugarColumn(SqlParameterDbType=typeof(CommonPropertyConvert))]一样报错:The JIT compiler encountered invalid IL code or an internal limitation.

    0 回复
  • @龍:那你就看这个表有什么不一样的,比精度不太长,一般可能是哪个字段问题

    精度最好18,6   18,2  18,4

    0 回复
  • 或者你提供建表语句和实体类我看看有没有什么特别的

    0 回复
  • 龍 VIP0
    2周前

    @fate sta:在本地是可以的,没出现这种问题,连的是同一个数据库

    image.png

    /// <summary>

    /// 设备

    /// </summary>

    [SugarTable("t_equipment")]

    public class Equipment : BaseEntity

    {

        /// <summary>

        /// 设备ID

        /// </summary>

        [SugarColumn(IsPrimaryKey = true, ColumnDescription = "主键", SqlParameterDbType = typeof(CommonPropertyConvert))]

        public long EquipmentId { get; set; }


        /// <summary>

        /// 部门ID

        /// </summary>

        [SugarColumn(SqlParameterDbType = typeof(CommonPropertyConvert))]

        public long DepartmentId { get; set; }


        /// <summary>

        /// 设备类型ID

        /// </summary>

        [SugarColumn(SqlParameterDbType = typeof(CommonPropertyConvert))]

        public int EquipmentTypeId { get; set; }


        /// <summary>

        /// 设备名称

        /// </summary>

        [SugarColumn(SqlParameterDbType = typeof(CommonPropertyConvert))]

        public string EquipmentName { get; set; } = "";


        /// <summary>

        /// 设备型号

        /// </summary>

        [SugarColumn(SqlParameterDbType = typeof(CommonPropertyConvert))]

        public string EquipmentModel { get; set; } = "";


        /// <summary>

        /// 产品编号

        /// </summary>

        [SugarColumn(SqlParameterDbType = typeof(CommonPropertyConvert))]

        public string ProductNo { get; set; } = "";


        /// <summary>

        /// 制造单位名称

        /// </summary>

        [SugarColumn(SqlParameterDbType = typeof(CommonPropertyConvert))]

        public string ManufacturerName { get; set; } = "";


        /// <summary>

        /// 制作许可证编号

        /// </summary>

        [SugarColumn(SqlParameterDbType = typeof(CommonPropertyConvert))]

        public string ManufacturerLicenseNo { get; set; } = "";


        /// <summary>

        /// 制作许可证

        /// </summary>

        [SugarColumn(SqlParameterDbType = typeof(CommonPropertyConvert))]

        public string ManufacturerLicense { get; set; } = "";


        /// <summary>

        /// 制造日期

        /// </summary>

        [SugarColumn(SqlParameterDbType = typeof(CommonPropertyConvert))]

        public DateTime? MadeDate { get; set; }


        /// <summary>

        /// 投产日期

        /// </summary>

        [SugarColumn(SqlParameterDbType = typeof(CommonPropertyConvert))]

        public DateTime? StartusedDate { get; set; }


        /// <summary>

        /// 设备总重量(kg)

        /// </summary>

        [SugarColumn(SqlParameterDbType = typeof(CommonPropertyConvert))]

        public double? TotalMass { get; set; }


        /// <summary>

        /// 设备外形尺寸

        /// </summary>

        [SugarColumn(SqlParameterDbType = typeof(CommonPropertyConvert))]

        public string Dimensions { get; set; } = "";


        /// <summary>

        /// 铭牌ID

        /// </summary>

        [SugarColumn(SqlParameterDbType = typeof(CommonPropertyConvert))]

        public string NameplateImageIds { get; set; } = "";


        /// <summary>

        /// 故障配置底图

        /// </summary>

        [SugarColumn(SqlParameterDbType = typeof(CommonPropertyConvert))]

        public Guid? ElementcomponnentsrelationImageId { get; set; }


        /// <summary>

        /// 其它图片文件地址

        /// </summary>

        [SugarColumn(SqlParameterDbType = typeof(CommonPropertyConvert))]

        public string OtherFileUrl { get; set; } = "";


        /// <summary>

        /// 安装地点

        /// </summary>

        [SugarColumn(SqlParameterDbType = typeof(CommonPropertyConvert))]

        public string InstallPlace { get; set; } = "";


        /// <summary>

        /// 程控器类型

        /// </summary>

        [SugarColumn(SqlParameterDbType = typeof(CommonPropertyConvert))]

        public string ProgramControlModel { get; set; } = "";


        /// <summary>

        /// 炉体液位上限

        /// </summary>

        [SugarColumn(SqlParameterDbType = typeof(CommonPropertyConvert))]

        public double? UpperLimitLiquidLevel { get; set; }


        /// <summary>

        /// 加热炉

        /// </summary>

        [SugarColumn(IsIgnore = true)]

        public EquipmentFurnace EquipmentFurnace { get; set; } = null;


        /// <summary>

        /// 注汽锅炉

        /// </summary>

        [SugarColumn(IsIgnore = true)]

        public EquipmentBoiler EquipmentBoiler { get; set; } = null;


        /// <summary>

        /// 井

        /// </summary>

        [SugarColumn(IsIgnore = true)]

        public EquipmentWell EquipmentWell { get; set; } = null;


        /// <summary>

        /// 泵

        /// </summary>

        [SugarColumn(IsIgnore = true)]

        public EquipmentPump EquipmentPump { get; set; } = null;


        /// <summary>

        /// 设备燃烧器

        /// </summary>

        [SugarColumn(IsIgnore = true)]

        public EquipmentDeviceinfo EquipmentDeviceinfo { get; set; } = null;

    }


    0 回复
  • image.png

    0 回复
  • 这个改成float4看看

    0 回复
  • 还有一个办法就是排除法 找到有问题的字段


    select(it=>new  Equipment (){

     加几个字段 

    没问题

    在加几个


    })


    0 回复
  • 龍 VIP0
    2周前

    @fate sta:你说的排除法没用,没效果,还是报一样的错

    0 回复
  • @龍:查一个字段也报错?

    0 回复
  • 龍 VIP0
    2周前

    @fate sta:数据库中varchar类型映射到实体的string类型都报错,一个一个字段对应属性去排除,都不知道怎么改

    0 回复
  • 龍 VIP0
    2周前

    @fate sta:问题已解决了。pg库中的int2和float4无法映射C#实体的数据类型int和double

    0 回复