c# – AutoMapper和DateTime to String映射无法正常工作
发布时间:2020-12-16 02:01:05 所属栏目:百科 来源:网络整理
导读:我已经搞乱了AutoMapper几天了,但是我最困难的时候映射值对我来说似乎是基本的任务.我很可能是愚蠢的,但它开始变得非常令人沮丧,所有这些不断的例外被抛出. /咆哮 无论如何,我有一个Entity Framework代理对象公司.通过基类Entity,它有一个名为CreatedDateTim
我已经搞乱了AutoMapper几天了,但是我最困难的时候映射值对我来说似乎是基本的任务.我很可能是愚蠢的,但它开始变得非常令人沮丧,所有这些不断的例外被抛出. /咆哮
无论如何,我有一个Entity Framework代理对象公司.通过基类Entity,它有一个名为CreatedDateTime的属性,它是一个DateTime.我还有一个名为CompanyDto的DTO对象,它是一个字符串.我想要做的就是获取DateTime值并将其展平为ToString(“g”).我尝试了很多东西,所有这些都抛出了某种异常.唯一有效的映射是惊讶,惊讶:.Ignore().这是我对TypeConverter的最新尝试: Mapper.CreateMap<DateTime,string>().ConvertUsing<DateTimeToStringConverter>(); public sealed class DateTimeToStringConverter : TypeConverter<DateTime,string> { protected override string ConvertCore( DateTime source) { if (source != null) { return source.ToString("g"); } return string.Empty; } } 这导致了这种情况:类型’System.String’没有默认构造函数 吉米,你在浏览吗?请指出正确的方向,因为此时我认为通过手动映射我将完成比使用AutoMapper更多的工作. 哦,这适用于那些想知道的AutoMapper 3.1.1,Entity Framework 6.1,ASP.NET MVC 5.1.1. 解决方法
试试这个而不是自定义转换器..
Mapper.CreateMap<Company,CompanyDto>() .ForMember(d => d.CreatedDateTime,expression => expression.ResolveUsing(s=>s.CreatedDateTime.ToString("g"))); // now do the Mapper.Map from Company to CompanyDto. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |