运行时我的DTO对象出现空错误:
我不明白,因为列可以为空:
[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
};
有什么想法吗?
答案 0 :(得分:4)
您正在尝试将空值转换为枚举类型(而不是可以为空的枚举类型)。我猜你真的想把你的演员变成:
Column = (CompanyColumnsEnumDTO?) column
答案 1 :(得分:3)
此处的问题是您将值column
转换为不可为空的值CompanyColumnsEnumDTO
。根据异常,column
在null
看起来像CompanyColumnsEnumDTO?
,并且非适当地转换为异常会引发异常。你的意思是转而转向{{1}}吗?
答案 2 :(得分:1)
您需要转换为(CompanyColumnsEnumDTO?)而不是(CompanyColumnsEnumDTO)