System.NotSupportedException:'' DataSet'不支持System.Nullable<>

时间:2017-10-18 13:45:43

标签: c# .net reflection

我正在从给定类型中检索public class ContactMappingProfile : Profile { public ContactMappingProfile() { // This map works fine CreateMap<ContactEntity, ContactDto>(); // Map from DTO to Entity CreateMap<ContactDto, ContactEntity>() .ForMember(dest => dest.CustomerNumbers, opt => opt.ResolveUsing(src => src.CustomerNumbers)); } }

当属性类型为propertyInfos时,我无法将属性类型添加到Nullable<int>集合,因为我得到了一个例外:

  

System.NotSupportedException:&#39;&#39; DataSet&#39;不支持   System.Nullable&LT;&GT;&#39;

dataTable.columns

我应该在if子句中更改什么才能使其工作?

我已将foreach (var prop in propertyInfos) { if (prop.PropertyType == typeof(int?)) { dataTable.Columns.Add(prop.Name, prop.PropertyType); } else { dataTable.Columns.Add(prop.Name, prop.PropertyType); } } null添加到收藏中,但这没有帮助?!

1 个答案:

答案 0 :(得分:4)

为此目的使用null coalescing operatorNullable.GetUnderlyingType方法:

dataTable.Columns.Add(prop.Name, Nullable.GetUnderlyingType(
                              prop.PropertyType) ?? prop.PropertyType);