public class ClientViewModel
{
[Required(ErrorMessage = "The Client Code field is required.")]
public string ClientCode { get; set; }
[Required(ErrorMessage = "The Company Legal Name field is required.")]
public string CompanyLegalName { get; set; }
public string Notes { get; set; }
public string Address { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Zip { get; set; }
public Nullable<DateTime> ScheduledDate { get; set; }
public Nullable<decimal> AmountDiscount { get; set; }
}
public class Client
{
public string ClientCode { get; set; }
public string CompanyLegalName { get; set; }
public string Notes { get; set; }
public string Address { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Zip { get; set; }
public Nullable<DateTime> ScheduledDate { get; set; }
public Nullable<decimal> AmountDiscount { get; set; }
}
編集:
例外の詳細:AutoMapper.AutoMapperMappingException:タイプマップ構成が欠落しているか、マッピングがサポートされていません。
マッピングタイプ:クライアント-> ClientViewModel myapp.Models.Client-> myapp.Models.ClientViewModel
宛先パス:ClientViewModel
ソース値:myapp.Models.Client
私のClient
&ClientViewModel
にはまったく同じ数の小道具があり、以下は私が使用しているコードと多くの情報を取得せずにスローするエラーですが、ここで何が欠けていますか?
Client client = context.Clients.Where(x => x.CustomerID == id).FirstOrDefault();
ClientViewModel clientViewModel = Mapper.Map<Client, ClientViewModel>(client);
タイプ 'AutoMapper.AutoMapperMappingException'の例外がAutoMapper.dllで発生しましたが、ユーザーコードでは処理されませんでした
マップを作成するのを忘れただけです。これをコードに追加します(Mapper
クラスを呼び出す前に):
Mapper.CreateMap<Client, ClientViewModel>();
ClientViewModel cvm = Mapper.Map<Client, ClientViewModel>(client);
マップを呼び出す前。 CreateMapを呼び出す必要があります。
Mapper.CreateMap<Client, ClientViewModel>();
通常、これはアプリケーションの初期化コード/クラス、たとえばglobal.asax.csで呼び出します。