次のクラスが定義されています。
public class ImageIndexModel {
public string Description {get; set;}
public string InstrumentNumber {get; set;}
}
public class ImageEditModel : ImageIndexModel {
public int TotalCount = 0;
}
public class Clerk { //This is actually a class defined by LinqToSql
public string Description {get; set;}
public string InstrumentNo {get; set;}
}
ここで、 でglobal.asax
次のマッピングを定義しましたApplication_Start()
。
Mapper.CreateMap<ImageIndexModel, Clerk>()
.ForMember(dest => dest.InstrumentNo,
opt => opt.MapFrom(src => src.InstrumentNumber));
最後に、コントローラーの 1 つに、次のコードがあります。
var _existing = new Clerk();
var _default = new ImageEditModel() {
InstrumentNumber = "12345678", Description = "Test"
};
Mapper.Map(_default, _existing);
コントローラーでアクションを初めて呼び出してこのマッピングを実行すると、すべてが正常に機能し、オブジェクトInstrumentNumber
の に正しくマッピングされます。ただし、アクションが 2 回目に呼び出されると、マップされません。 確かに値がありますが、null のままです。InstrumentNo
Clerk
InstrumentNo
InstrumentNumber
InstrumentNo
ここで何が起こっているのでしょうか?