下面是簡單例子
1引用Mapster.dll包
2.初始化,設置映射規則
3.下面有兩個實體 ModelA 、ModelB
class ModelA{
public string UserId{get;set;}
public string Remark{get;set;}
}
class ModelB{
public string User_id{get;set;}
public string Remark_msg{get;set;}
public string Lab_id{get;set;}
}
4.初始化 (推薦: 將所有的映射規則寫一起,當項目執行時一起進行初始化操作 ,之后直接使用,避免每次映射都需要進行初始化)
public static void InitMapster()
{
// modelA 映射到 modelB
TypeAdapterConfig<ModelA, ModelB>
.NewConfig()
.AddDestinationTransform((string x) => !string.IsNullOrWhiteSpace(x) ? x : " ") // 空值替換
.Map(dest => dest.Lab_id, src => MapContext.Current.Parameters["labId"]) // 獲取運行時的labId的值
.Map(dest => dest.User_id, src => src.UserId) // 將UserId的值映射給User_id
.Map(dest => dest.Remark_msg, src => src.Remark); // 將Remark的值映射給Remark_msg
TypeAdapterConfig<ModelC, ModelD>
......
}
5.使用映射
// 調用Mapster 將 List<ModelA> modelAs 映射到 List<ModelB> modelBs
public void test()
{
List<modelA> modelAs = ...; // 獲取modelA對象集合
int labId = 1; // 獲取 labId的值
// 進行映射
var modelBs = modelAs.BuildAdapter()
.AddParameters("labId", labId) // 設置值
.AdaptToType<List<ModelB>>(); // 將某一實體映射成List<ModelB>
}
