我有2个型号 - modelA和modelB:
public class modelA {
public string modelType { get; set; }
[Column("next_number")]
public int mNum { get; set; }
}
public class modelB {
public string mNum { get; set; }
//other properties
}
modelB.mNum的值是“A”+ modelA.mNum。我目前正在做的是:
ModelA modelA = db.modelA.Where(a => a.modelType == "A").Single();
modelB.nNum = "A" + modelA.mNum;
db.modelBs.Add(modelB);
有没有办法可以使用Automapper映射模型并在模型类中添加前缀?或者这已经很好了吗?
注意:我真的不赞成这种设计,但我没有选择更改它。 我最初认为触发器负责添加前缀,但事实证明,桌面应用程序是添加前缀并递增next_number的应用程序。
答案 0 :(得分:1)
创建这样的映射:
Mapper.CreateMap<ModelA, ModelB>().
ForMember(mB => mB.mNum, o => o.MapFrom(mA => "A" + mA.mNum));
然后:
ModelA modelA = db.modelA.Where(a => a.modelType == "A").Single();
modelB = Mapper.Map<ModelA>(modelA);
db.modelBs.Add(modelB);
这就是你需要的吗?