dotnetcore / WTM

Use WTM to write .netcore app fast !!!
https://wtmdoc.walkingtec.cn
MIT License
4.23k stars 882 forks source link

生成代码异常。 #504

Open alook123 opened 3 years ago

alook123 commented 3 years ago

5.4.2版本的代码生成器报异常 我会退到5.3.8就能正常生成了

以下是我的Model

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Text.Json.Serialization;
using System.Threading.Tasks;
using WalkingTec.Mvvm.Core;

namespace Charter.Model
{
    /// <summary>
    /// 订航信息(航班订单)
    /// </summary>
    [Table("FlightOrder")]
    public class FlightOrder : PersistPoco
    {
        /// <summary>
        /// 主人单号(订单号)
        /// </summary>
        [Display(Name = "主人单号")]
        [Required(ErrorMessage = "请输入{0}")]
        [StringLength(30, ErrorMessage = "{0}的长度不能大于{1}")]
        public string OrderCode { get; set; }
        /// <summary>
        /// 预定重量(千克)
        /// </summary>
        [Display(Name = "预定重量(千克)")]
        [Required(ErrorMessage = "请输入{0}")]
        [Column(TypeName = "decimal(10,2)")]
        public decimal OrderWeight { get; set; }
        /// <summary>
        /// 预定方数(CMB)
        /// </summary>
        [Display(Name = "预定方数(CMB)")]
        [Required(ErrorMessage = "请输入{0}")]
        [Column(TypeName = "decimal(10,2)")]
        public decimal OrderSquared { get; set; }
        /// <summary>
        /// 实际重量(千克)
        /// </summary>
        [Display(Name = "实际重量(千克)")]
        [Column(TypeName = "decimal(10,2)")]
        public decimal? ActualWeight { get; set; }
        /// <summary>
        /// 实际方数(CMB)
        /// </summary>
        [Display(Name = "实际方数(CMB)")]
        [Column(TypeName = "decimal(10,2)")]
        public decimal? ActualSquared { get; set; }
        /// <summary>
        /// 尺寸
        /// </summary>
        [Display(Name = "尺寸")]
        [StringLength(50, ErrorMessage = "{0}的长度不能大于{1}")]
        public string Size { get; set; }
        /// <summary>
        /// 板数
        /// </summary>
        [Display(Name = "板数")]
        public int? BoardCount { get; set; }
        /// <summary>
        /// 产品明细
        /// </summary>
        [Display(Name = "产品明细")]
        [StringLength(300, ErrorMessage = "{0}的长度不能大于{1}")]
        public string ProductDetail { get; set; }
        /// <summary>
        /// 联系电话
        /// </summary>
        [Display(Name = "联系电话")]
        [Required(ErrorMessage = "请输入{0}")]
        [RegularExpression(@"^(13[0-9]|14[5|7]|15[0|1|2|3|4|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$", ErrorMessage = "{0}格式不正确")]
        public string TelPhone { get; set; }
        /// <summary>
        /// 备注
        /// </summary>
        [Display(Name = "备注")]
        [StringLength(500, ErrorMessage = "{0}的长度不能大于{1}")]
        public string Remark { get; set; }
        /// <summary>
        /// 仓位类型
        /// </summary>
        [Display(Name = "仓位类型")]
        [Required(ErrorMessage = "请输入{0}")]
        public PositionTypeEnum PositionType { get; set; }
        /// <summary>
        /// 状态
        /// </summary>
        [Display(Name = "状态")]
        [Required(ErrorMessage = "请输入{0}")]
        public FlightOrderState State { get; set; } = FlightOrderState.NotArrived;

        /// <summary>
        /// 航班编号
        /// </summary>
        [Display(Name = "航班编号")]
        [Required(ErrorMessage = "请输入{0}")]
        public Guid? FlightDataId { get; set; }
        /// <summary>
        /// 航班信息
        /// </summary>
        [Display(Name = "航班信息")]
        [JsonIgnore]
        public Flight FlightData { get; set; }

        /// <summary>
        /// 客户编号
        /// </summary>
        [Display(Name = "客户编号")]
        [Required(ErrorMessage = "请输入{0}")]
        public Guid? CustomerDataId { get; set; }
        /// <summary>
        /// 客户信息
        /// </summary>
        [Display(Name = "客户信息")]
        [JsonIgnore]
        public Customer CustomerData { get; set; }
    }
    /// <summary>
    /// 仓位类型枚举
    /// </summary>
    public enum PositionTypeEnum
    {
        /// <summary>
        /// 固定仓
        /// </summary>
        [Display(Name = "固定仓")]
        FixedWarehouse = 1,
        /// <summary>
        /// 散仓
        /// </summary>
        [Display(Name = "散仓")]
        BulkWarehouse = 2,
    }
    /// <summary>
    /// 航班订单枚举
    /// </summary>
    public enum FlightOrderState
    {
        /// <summary>
        /// 待到货
        /// </summary>
        [Display(Name = "待到货")]
        NotArrived = 1,
        /// <summary>
        /// 已到货
        /// </summary>
        [Display(Name = "已到货")]
        ItHasArrived = 2,
        /// <summary>
        /// 已上机
        /// </summary>
        [Display(Name = "已上机")]
        OnBoard = 3,
    }
}

生成代码异常信息

System.NullReferenceException: Object reference not set to an instance of an object.
   at WalkingTec.Mvvm.TagHelpers.LayUI.Common.LayuiUIService.MakeCombo(String name, List`1 value, String selectedValue, String emptyText, Boolean isReadOnly)
   at WalkingTec.Mvvm.Mvc.CodeGenListVM.subField(String fieldname, CodeGenListView entity)
   at WalkingTec.Mvvm.Mvc.CodeGenListVM.<InitGridHeader>b__5_4(CodeGenListView entity, Object val)
   at WalkingTec.Mvvm.Core.GridColumn`1.GetText(Object source, Boolean needFormat)
   at WalkingTec.Mvvm.Core.Extensions.ListVMExtension.GetSingleDataJson[T](IBasePagedListVM`2 self, Object obj, Boolean returnColumnObject, Int32 index, Boolean enumToString)
   at WalkingTec.Mvvm.Core.Extensions.ListVMExtension.GetDataJson[T](IBasePagedListVM`2 self, Boolean returnColumnObject, Boolean enumToString)
   at WalkingTec.Mvvm.TagHelpers.LayUI.DataTableTagHelper.Process(TagHelperContext context, TagHelperOutput output)
   at Microsoft.AspNetCore.Razor.TagHelpers.TagHelper.ProcessAsync(TagHelperContext context, TagHelperOutput output)
   at Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner.RunAsync(TagHelperExecutionContext executionContext)
   at AspNetCore.Views__CodeGen_SetField.<ExecuteAsync>b__19_2()
   at Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext.SetOutputContentAsync()
   at AspNetCore.Views__CodeGen_SetField.<ExecuteAsync>b__19_1()
   at Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext.SetOutputContentAsync()
   at AspNetCore.Views__CodeGen_SetField.ExecuteAsync()
   at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageCoreAsync(IRazorPage page, ViewContext context)
   at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageAsync(IRazorPage page, ViewContext context, Boolean invokeViewStarts)
   at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderAsync(ViewContext context)
   at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ViewContext viewConte
liuliang-wt commented 3 years ago

5.4.3已修复