加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读