我一直在試圖在任何地方找到這個答案,並覺得我一定不知道我需要的正確關鍵詞,所以我希望能在這裏找到答案。在數據層和邏輯層之間映射/轉換數據
所以我建立,有一個項目連接這樣:
數據庫<>數據層<>邏輯層<> UI
當數據到達邏輯層,我想執行輕微轉換。首先,我將演示代碼,然後解釋我正在嘗試做什麼。
我有一個「PersonDao的」數據層內與下面設置對象:
public class PersonDao
{
public int PersonID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public int GenderID { get; set }
}
並用以下一個「GenderDao」對象:
public class GenderDao
{
public int GenderID { get; set; }
public string Name { get; set; } //this essentially holds 'male' and 'female'
}
在邏輯層,我在反映數據層的邏輯層內有'PersonDto'對象:
public class PersonDto
{
public int PersonID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public int GenderID { get; set }
}
並且當然是'Gende rDto」對象,數據層內體現出其對應現在
public class GenderDao
{
public int GenderID { get; set; }
public string Name { get; set; }
}
,有了這些信息,我所要做的是可以創建一個自動映射或某種形式的轉換,讓我自動匹配GenderDto.Name到PersonDto.GenderID。我基本上要:
PersonDto.GenderID = GenderDto.Name其中GenderDto.GenderID == PersonDto.GenderID
和扭轉這種映射爲好。
的最終目標是,在UI層內,用戶可以拉一個人的個人資料,並會看到類似這樣的:
- 名字:約翰
- 姓:李四
- 性別:男
用戶也可以在表單中輸入相同的信息,該表單將信息傳遞給邏輯層,然後將該性別名稱轉換回GenderID,以便它可以成爲存儲在數據庫中。
任何幫助將不勝感激,謝謝。
你有什麼麻煩? – Nix
本質上,已經有一個映射到DAL內的實體框架,並且已經安裝了AutoMapper。 但我希望BLL(邏輯層)能夠轉換映射,以便當UI層看到數據時,他們會獲得性別(女性/男性)而不是int表示。 – Azu
反過來,我希望能夠重新轉換,以便當用戶輸入男性/女性時,數據庫獲得int表示以應用於表格數據 – Azu