8分鐘學會使用AutoMapper

2021-09-19 22:38:24 字數 2489 閱讀 8373

原文:

定義了連個簡單的model:

(src,dest)=>src.name="真棒"+src.name));

其中呢,src是destination物件,dest是source,你呢就可以用這兩個物件去獲取裡面的值,說白了這就是迴圈去找裡面的值了。

在條件對映中,通過formember函式,引數是乙個委託型別fun<>,其裡面呢也是可以進行巢狀的,但一般來說乙個就夠用了。

初始化配置是非常受歡迎的,每個領域都應該配置一次。

//初始化配置檔案

);

但是像這種情況呢,如果是多個對映,那麼我們只能用profile來配置,組織你的對映配置,並將配置放置到建構函式中(這種情況是5.x以上的版本),乙個是以下的版本,已經被淘汰了。

5.0及以上版本:

public class alienspersonprofile : profile

}

5.0以下版本(在早期版本中,使用配置方法而不是建構函式。 從版本5開始,configure()已經過時。 它將在6.0中被刪除。)

public class organizationprofile : profile

}

然後在程式啟動的時候初始化即可。

在主對映器中,組織了多個小對映器,configuration為我們的靜態配置入口類;profiles資料夾為我們所有profile類的資料夾。如果是mvc,我們需要在global中呼叫,那我的這個是控制台的。

public static void configure());}

其中新增子對映,可以用以上兩種方式。

在實際業務環境中,你不可能說兩個類的字段是一 一 對應的,這個時候我們就要對應它們的對映關係。

public class calendarevent

public string title

}public class calendareventform

public int eventhour

public int eventminute

public string displaytitle

}

在這兩個類中,calendarevent的date將被拆分為calendareventform的日期、時、分三個字段,title也將對應displaytitle欄位,那麼相應的profile定義如下:

public class calendareventprofile : profile

}

main方法通過依賴注入,開始對映過程,下圖是**和圖。

那麼最後呢,如果是反向的對映,一定回缺少屬性,那麼就你就可以obj.屬性進行賦值。

附autohelper封裝類

///

/// /// 集合列表型別對映

///

public static listmaptolist(this ienumerable source)

}/// /// 集合列表型別對映

///

public static listmaptolist(this ienumerablesource)

/// /// 型別對映

///

public static tdestination mapto(this tsource source, tdestination destination)

where tsource : class

where tdestination : class

/// /// datareader對映

///

public static ienumerabledatareadermapto(this idatareader reader)

}}

8分鐘學會使用AutoMapper

定義了連個簡單的model src,dest src.name 真棒 src.name 其中呢,src是destination物件,dest是source,你呢就可以用這兩個物件去獲取裡面的值,說白了這就是迴圈去找裡面的值了。在條件對映中,通過formember函式,引數是乙個委託型別fun 其裡面...

30分鐘學會使用

vi 是unix世界裡極為普遍的全螢幕文字 編輯器,vim是它的改進版本vi improved的簡稱。幾乎可以說任何一台 unix 機器都會提供這套軟體。linux當然也有,它的 vi 其實是 elvis 版權問題 不過它們都差不多。熟悉 dos 下的文書處理後,也許會感到 vi 並不好用 unix...

10分鐘學會使用qmake

qmake使用儲存在專案 pro 檔案中的資訊來決定makefile檔案中該生成什麼。乙個基本的專案檔案包含關於應用程式的資訊,比如,編譯應用程式需要哪些檔案,並且使用哪些配置設定。這裡是乙個簡單的示例專案檔案 sources hello.cpp headers hello.h config qt ...