I can't get my head round the following issue. I have a feeling it is a limitation of LINQ and expression trees, but not sure how to accept the lambda body. Can I achieve this WITHOUT creating a custom converter?
Mapper.CreateMap<I_NEWS, NewsModel>() .ForMember(x => x.DateCreated, opt => opt.MapFrom(src => { var dt = (DateTime)src.DateCreated; return dt.ToShortDateString(); }));
I'm getting this error: A lambda expression with a statement body cannot be converted to an expression tree
In order to use lambda bodies, use .ResolveUsing
instead of .MapFrom
.
As per the author:
MapFrom has some extra stuff that needs expression trees (like null checking etc).
So your statement would look like this:
Mapper.CreateMap<I_NEWS, NewsModel>() .ForMember(x => x.DateCreated, opt => opt.ResolveUsing(src => { var dt = (DateTime)src.DateCreated; return dt.ToShortDateString(); }));
try this:
Mapper.CreateMap<I_NEWS, NewsModel>().ForMember(x => x.DateCreated, opt => opt.MapFrom(src => ((DateTime)src.DateCreated).ToShortDateString()));
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With