Код для комплексного отображения AutoMapper - PullRequest
0 голосов
/ 22 мая 2018

AutoMapper с VB.NET

У меня есть следующие классы ниже.OrderA со списком (из OrderLineItem) и OrderBList со списком (из OrderB).Я хочу скопировать данные из OrderA в OrderBList.Который копирует ItemName, ItemQty, Цена из списка (Of OrderALineItem) в Список (Of OrderB) и OrderID, CustomerName из самого OrderA.Я нашел почти все коды в C # и не могу преобразовать его в код vb.net.

Public Class OrderA
    Public Property OrderID As String
    Public Property CustomerName As String
    Public Property OrderLineItem As List(Of OrderALineItem)
End Class
Public Class OrderALineItem
    Public Property ItemName As String
    Public Property ItemQty As Integer
    Public Property Price As Decimal
End Class

Public Class OrderBList
    Public Property OrderBLineItem As List(Of OrderB)
End Class

Public Class OrderB

    Public Property OrderID As String
    Public Property CustomerName As String
    Public Property ItemName As String
    Public Property ItemQty As Integer
    Public Property Price As Decimal

End Class

Мой код VB.NET до сих пор:

Dim mapperConfiguration = New MapperConfiguration(Sub(config)
                                                    config.CreateMap(Of OrderALineItem, OrderBList)()
                                                End Sub)
Dim mapper = mapperConfiguration.CreateMapper()
Dim objOrderB = mapper.Map(Of OrderBList)(objOrder.OrderLineItem)

Вышекод создает и объект из копирует данные из objOrder.OrderLineItem в OrderBList.Вот и все.
Может кто-нибудь помочь мне в этом в VB.NET .

Примечание: Совершенно новый пользователь в AutoMapper

Версия: AutoMapper 6.2.2.0

1 Ответ

0 голосов
/ 06 июня 2018

Готово, надеюсь, это кому-нибудь пригодится.

Dim mapperConfiguration = New MapperConfiguration(Sub(config)
                                                      config.AddProfile(New CustomProfile_1)
                                                  End Sub)

Dim objMapper = mapperConfiguration.CreateMapper()

Dim objOrderB As List(Of Dest_OrderB) = objMapper.Map(Of Src_OrderA, List(Of Dest_OrderB))(objOrderA)

Public Class CustomProfile_1
    Inherits Profile
    Sub New()

        CreateMap(Of Src_OrderALineItem, Dest_OrderB)()

        CreateMap(Of Src_OrderA, List(Of Dest_OrderB))() _
            .ConstructProjectionUsing(
                Function(Src1) Src1.List_Src_OrderALineItem.Select(Function(Src2) New Dest_OrderB _
                    With {.CustomerName = Src1.CustomerName,
                            .OrderID = Src1.OrderID,
                            .ItemName = Src2.ItemName,
                            .ItemQty = Src2.ItemQty,
                            .Price = Src2.Price}
                            ).ToList())


    End Sub
End Class
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...