2017-04-05 1 views
0

以下を試しましたが、 "LINQ式のノードタイプ 'ArrayIndex'がLINQ to Entitiesでサポートされていませんでした。 "MVC Automapperを使用してDate Entityから実際の月名を返す方法

string[] Months = new string[] 
{ 
    "JAN", 
    "FEB", 
    "MAR", 
    "APR", 
    "MAY", 
    "JUN", 
    "JUL", 
    "AUG", 
    "SEP", 
    "OCT", 
    "NOV", 
    "DEC", 
}; 

Mapper.CreateMap<DezReceiptModel, SelectablePaymentMonthYearViewModel>() 
    .ForMember(dest => dest.DateOfServiceMonthCommaYear, 
       opt => opt.MapFrom(src => Months[src.DateOfService.Month].ToString() + src.DateOfService.Year.ToString())); 
+0

カスタムMonths配列を使用する代わりに、組み込みのものを使用することができます。この質問をチェックしてください:http://stackoverflow.com/questions/3184121/get-month-name-from-month-number – vyrp

+0

'Map'メソッドが動作するはずです。例外から 'ProjectTo'を使用しているようです。あなたの質問を明確にしてください。 –

+0

@Mohammed Akbari元のコードであなたの提案をどのように使用するかを教えてください。ありがとう! –

答えて

0

日付の列がnullでない場合。

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

LINQは.Tostring( "MMM")をSQLに変換できないため、これは機能しません。 .Tostring()を変換するのは変ですが、フォーマットを追加すると例外が発生します。それは実際に私が試した最初のことです。 –

関連する問題