C# 如何使用MVC Automapper从日期实体返回实际月份名称

C# 如何使用MVC Automapper从日期实体返回实际月份名称,c#,asp.net-mvc,entity-framework,linq,automapper,C#,Asp.net Mvc,Entity Framework,Linq,Automapper,我尝试了以下操作,但由于“LINQ to实体中不支持LINQ表达式节点类型‘ArrayIndex’”而失败(正如我预期的那样) string[]月=新字符串[] { “简”, “二月”, “三月”, “四月”, “五月”, “六月”, “七月”, “八月”, “九月”, “十月”, “11月”, “十二月”, }; Mapper.CreateMap() .FormMember(dest=>dest.DateOfServiceMonthCommaYear, opt=>opt.MapFrom(src

我尝试了以下操作,但由于“LINQ to实体中不支持LINQ表达式节点类型‘ArrayIndex’”而失败(正如我预期的那样)

string[]月=新字符串[]
{
“简”,
“二月”,
“三月”,
“四月”,
“五月”,
“六月”,
“七月”,
“八月”,
“九月”,
“十月”,
“11月”,
“十二月”,
};
Mapper.CreateMap()
.FormMember(dest=>dest.DateOfServiceMonthCommaYear,
opt=>opt.MapFrom(src=>Months[src.DateOfService.Month].ToString()+src.DateOfService.Year.ToString());

如果日期列不为空。您可以参考我的解决方案:

Mapper.CreateMap<DezReceiptModel, SelectablePaymentMonthYearViewModel>()
             .ForMember(dest => dest.DateOfServiceMonthCommaYear, opt => opt.MapFrom(src => src.DateOfService.ToString("MMM").ToUpper() + "-" + src.DateOfService.Year.ToString()));
Mapper.CreateMap()
.FormMember(dest=>dest.DateOfService.MonthCommayear,opt=>opt.MapFrom(src=>src.DateOfService.ToString(“MMM”).ToUpper()+“-”+src.DateOfService.Year.ToString());

您可以使用内置的月数组,而不是自定义的月数组。检查这个问题:
Map
方法应该可以工作。从异常情况看,您正在使用
ProjectTo
。请澄清您的问题。@Mohammed Akbari请告诉我您将如何在我的原始代码中使用您的建议。谢谢这将不起作用,因为LINQ将无法将.Tostring(“MMM”)转换为SQL。奇怪的是,它将转换.Tostring(),但添加格式将导致异常。这实际上是我尝试的第一件事。
Mapper.CreateMap<DezReceiptModel, SelectablePaymentMonthYearViewModel>()
             .ForMember(dest => dest.DateOfServiceMonthCommaYear, opt => opt.MapFrom(src => src.DateOfService.ToString("MMM").ToUpper() + "-" + src.DateOfService.Year.ToString()));