下面是簡單例子
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> }