C# · 1月 23, 2022

c# – 错误消息Nullable对象必须具有值

我在运行时在DTO对象上有一个null错误:

我不明白,因为列可以为空:

[DataContract]public class SearchParametersCompanyDTO{ public SearchParametersCompanyDTO(); [DataMember] public CompanyColumnsEnumDTO? Column { get; set; } [DataMember] public int PageIndex { get; set; } [DataMember] public int PageSize { get; set; } [DataMember] public string Term { get; set; }}[DataContract]public enum CompanyColumnsEnumDTO{ [EnumMember] CompanyName = 0,[EnumMember] City = 1,[EnumMember] PostCode = 2,}

它必须是转换问题,因为在Column上接受null:

var dto = new SearchParametersCompanyDTO { PageIndex = pageIndex,PageSize = defaultPageSize,Term = term,Column = null };

任何的想法?

解决方法 您正在尝试将空值转换为枚举类型(而不是可以为空的枚举类型).我猜你真的想把你的演员变成: Column = (CompanyColumnsEnumDTO?) column