我想创建一个在源和目标中使用相同类的映射器(复制对象),但如果“ColumnName”的属性值以'*'开头,则将“Value”属性值加倍。 这是班级:
public class CustomerDatabaseParameter
{
public string ColumnName { get; set; }
public double Value { get; set; }
}
这是我需要的结果:
示例1:
From:
ColumnName = "*xxxx";
Value = 50.0;
To:
ColumnName = "*xxxx";
Value = 100.0;
示例2:
From:
ColumnName = "www";
Value = 50.0;
To:
ColumnName = "www";
Value = 50.0;
答案 0 :(得分:0)
您可以在ResolveUsing
中添加任何您喜欢的表达式。只需确保返回与目标类型匹配的类型。
CreateMap<CustomerDatabaseParameter, CustomerDatabaseParameter>()
.ForMember(dest => dest.Value, o => o.ResolveUsing(
src => src.ColumnName.StartsWith("*") ? (src.Value * 2) : src.Value
));