[英]automapper gregorian datetime to persian datetime
为什么我不能使用下面的例子?
public class MappingProfile : Profile
{
public MappingProfile()
{
CreateMap<SiteSetting, dto_site_setting>()
.ForMember(dto => dto.LastUpdate, opt => opt.MapFrom(src =>
src.LastUpdate.Value.ToShamsiDate()));
}
}
public static class XDate
{
public static string ToShamsiDate(this DateTime _date, char separator = '-')
{
var year = pcal.GetYear(_date);
var month = pcal.GetMonth(_date).ToString("00");
var day = pcal.GetDayOfMonth(_date).ToString("00");
if (separator == '-')
return string.Format("{0}-{1}-{2}", year, month, day);
else
return string.Format("{0}/{1}/{2}", year, month, day);
}
}
我看到错误:
表达式树可能不包含使用可选 arguments 的调用或调用
为什么是这样?
根据错误消息,您的映射代码不允许包含使用可选 arguments 的方法调用。 但是您的ToShamsiDate()
方法有一个可选参数( char separator = '-'
),实际上您是使用可选参数从映射代码中调用该方法(通过不显式传递任何内容)。
更改方法签名以使可选参数成为必需参数 -
public static string ToShamsiDate(this DateTime _date, char separator)
并在您的映射代码中明确传递参数 -
CreateMap<SiteSetting, dto_site_setting>()
.ForMember(dto => dto.LastUpdate, opt => opt.MapFrom(src =>
src.LastUpdate.Value.ToShamsiDate('-')));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.