簡體   English   中英

ExpressMapper教程假設-我不知道從哪里開始

[英]ExpressMapper tutorial assumptions — I don’t know where to start

當前的項目:

  • ASP.NET 4.5.2
  • MVC 5
  • EF 6

老實說,我以前從未使用過映射器,盡管ExpressMapper教程會在高海拔亮點上跳動,但它對我所沒有的知識做出了一些假設。

因此,沒有一般的順序:

該產品應該將所有代碼集中在一個位置。 這個地方在哪里? 我放在哪里? 例子開始於

public void MappingRegistration() {
    Mapper.Register<Product,ProductViewModel>();
}

但是我不知道該放在哪里。 它會進入自己的文件還是在另一個文件中,例如在App_Start中?

如果它在項目中的其他位置,是否要在其自己的名稱空間下創建它?

如果我的viewModel的填充方式與dataModel的填充方式不同,如何分別處理每種類型? 與之類似,將數據從數據庫中拉出,並用與將數據從viewModel中拉出並插入或更新回數據庫的方式完全不同的條件規則填充viewModel。

如何引入外部條件,這些條件會影響數據以及將哪些數據插入數據庫的方式,例如用戶的角色,用戶的UserId和UserName以及各種項目設置? 根據條件,某些條目可能以空值而不是實際值結束。 如何使用這些條件進行業務邏輯驗證(用戶實際上是通過將其會話UserId與存儲在數據庫中的UserId進行比較來更新自己的記錄)?

現在,我在模型中做了很多手動映射,但是這是有問題的,特別是因為我使用的方法(減少控制器中的代碼)意味着在更新期間我無法在更新之前檢查數據庫中的條目它在數據庫中。

您可以將其粘貼在所需的任何位置-唯一需要做的是,在調用Mapper.Map<Product,ProductViewModel>之前,必須在代碼中調用Mapper.Map<Product,ProductViewModel>

例如

public static void main()
{
    Mapper.Register<Product,ProductViewModel>();
}

在功能上與

public static void main()
{
    RegisterMapping();
}

public static void RegisterMapping()
{
    Mapper.Register<Product,ProductViewModel>();
}

如果要將一個類成員映射到另一個具有不同名稱的類成員,則可以使用“ Member映射”指定它。

Mapper.Register<Product, ProductViewModel>()
    .Member(dest => dest.efgh, src => src.abcd);

如果要應用特殊的轉換規則,則可以使用Function映射來指定它-例如,您希望ProductViewModel中的價格為產品價格的2倍:

Mapper.Register<Product, ProductViewModel>()
    .Function(dest => dest.Price, src => src.Price*2);

您對映射所做的任何自定義都應在注冊映射時進行,並且必須基於逐成員AFAIK進行。

如果您需要其他幫助,請發表評論。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM