将字符串前缀添加到自动化模型属性

时间:2014-01-21 20:36:22

标签: asp.net-mvc asp.net-mvc-4 automapper

我有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的应用程序。

1 个答案:

答案 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);

这就是你需要的吗?